*   >> Lezen Onderwijs artikelen >> science >> programming

Het maken van een 3D-spel met Ogre - Collision Detection

Collision (Object1); }}}} Return true;}

Classes als speler, wapen en de vijand die uitgebreid de klasse PersistentFrameListener nu uitbreiden van de klasse CollisionObject. Hieronder kunt u zien hoe de vijand klasse implementeert de Collision functie.

 leegte Enemy :: Collision (CollisionObject * overig) {if (andere-> GetCollisionType () == PLAYER_WEAPON_CT) {Wapen * wapen = static_cast (andere ); this-> schilden - = wapen-> GetDamage (); if (this-> schilden GetCollisionType () == PLAYER_CT) {uitschakelen (); }} 

De BasicEnemy klasse implementeert de GetBoundingSphere functie met behulp van de ingebouwde getWorldBoundingSphere functie die beschikbaar is op alle Ogre MovableObjects (nagenoeg alle visuele Ogre objecten).


 Sphere BasicEnemy :: GetBoundingSphere () {return this- > gaaskant> getWorldBoundingSphere ();} 

De veranderingen voor de Weapon, Bullet en Speler klassen zijn vergelijkbaar. U kunt een kijkje nemen op de broncode te nemen om de specifieke wijzigingen in deze klassen zien.

main.cpp

De belangrijkste functie is bijgewerkt naar opstarten en afsluiten van de klasse CollisionManager.

 #include "OgreEngineManager.h" #include "WeaponDatabase.h" #include "EnemyDatabase.h" #include "GameLevel.h" #include "CollisionManager.h" #include "IrrKlangEngineManager.

h" #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 # definiëren WIN32_LEAN_AND_MEAN # include "windows.h" INT WINAPI WinMain (HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT) #elseint main (int argc, char ** argv) #endif {ENGINEMANAGER.AddNewResourceLocation (ResourceLocationDefinition ("FileSystem", "../../media", "Algemeen")); ENGINEMANAGER.AddNewResourceLocation (ResourceLocationDefinition ("Zip", "../../media/media.zip", "Algemeen")); if (ENGINEMANAGER.Startup (std :: string ("plugins.cfg"), std :: string ("ogre.cfg"), std :: string ("ogre.log"))) {IRRKLANGENGINEMANAGER.

Start

Page   <<  [1] [2] [3] [4] [5] [6] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.