*   >> Lecture Éducation Articles >> science >> la programmation

Faire un jeu en 3D avec Ogre - Collision Detection

Collision (object1); }}}} Return true;}

Les classes comme joueur, arme et ennemi qui étend la classe PersistentFrameListener maintenant étendre la classe CollisionObject. Ci-dessous vous pouvez voir comment l'ennemi de classe implémente la fonction de collision.

 Enemy vide :: Collision (* CollisionObject autre) {if (autre-> GetCollisionType () == PLAYER_WEAPON_CT) {Arme * = static_cast arme (autre ); this-> boucliers - Arme => GetDamage (); si (this-> boucliers GetCollisionType () == PLAYER_CT) {Shutdown (); }} 

La classe BasicEnemy implémente la fonction GetBoundingSphere utilisant la fonction intégrée getWorldBoundingSphere qui est disponible sur tous les MovableObjects Ogre (essentiellement toutes __gVirt_NP_NNS_NNPS<__ objets Ogre visuels).


 Sphère BasicEnemy :: GetBoundingSphere () {return this- > Mesh> getWorldBoundingSphere ();} 

Les changements de l'arme, Bullet et les classes du joueur sont similaires. Vous pouvez jeter un oeil sur le code source pour voir les changements spécifiques apportés à ces classes.

Main.cpp

La fonction principale est mis à jour démarrage et d'arrêt de la classe 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 # définissent 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 ("système de fichiers", "

Page   <<  [1] [2] [3] [4] [5] [6] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.