Klasser som afspiller, Weapon og Enemy, som har forlænget PersistentFrameListener klassen nu udvide CollisionObject klassen. Nedenfor kan du se, hvordan Enemy klassen implementerer kollision funktionen.
ugyldig Enemy :: Collision (CollisionObject * andet) {if (på anden> GetCollisionType () == PLAYER_WEAPON_CT) {Våben * våben = static_cast (andre ); this-> skjolde - = weapon-> GetDamage (); hvis (this-> skjolde GetCollisionType () == PLAYER_CT) {Shutdown (); }}BasicEnemy klassen implementerer GetBoundingSphere funktionen ved hjælp af den indbyggede getWorldBoundingSphere funktion, der er tilgængelig på alle Ogre MovableObjects (stort set alle visuelle Ogre objekter).
Sphere BasicEnemy :: GetBoundingSphere () {return dette- > mesh-> getWorldBoundingSphere ();}Ændringerne til våben, Bullet og Spiller klasser er ens. Du kan tage et kig på kildekoden for at se de konkrete ændringer af disse klasser.
main.cpp
Den vigtigste funktion er opdateret til start og lukning af CollisionManager klassen.
#include "OgreEngineManager.h" # include "WeaponDatabase.h" # include "EnemyDatabase.h" # include "GameLevel.h" # include "CollisionManager.h" # include "IrrKlangEngineManager.h" # Hvis OGRE_PLATFORM == OGRE_PLATFORM_WIN32 # definerer WIN32_LEAN_AND_MEAN # omfatte "windows.h" INT WinAPI WinMain (hInstance hInst, hInstance, LPSTR strCmdLine, INT) #elseint main (int argc, char ** argv) #endif {ENGINEMANAGER.AddNewResourceLocation (ResourceLocationDefinition ("filsystem", "../../media", "Generelt")); ENGINEMANAGER.AddNewResourceLocation (ResourceLocationDefinition ("Zip", "../../media/media.zip", "Generelt")); hvis (ENGINEMANAGER.Startup (std :: string ("plugins.cfg"), std :: string ("ogre.cfg"), std :: string ("ogre.log"))) {IRRKLANGENGINEMANAGER.
Startup (); ENEMYDATABASE.Startup (); WEAPONDATABASE.Startup (); COLLISIONMANAGER.Startup (); GAMELEVEL.Startup ("Level1.XML") ENGINEMANAGER.StartRenderLoop (); COLLISIONMANAGER.Shutdown (); WEAPONDATABASE.Shutdown (); ENEMYDATABASE.Shu
Kom godt i gang med Activeperl
- Sende HTML Form med ActivePerl
- Påstande og Fejl Tal i C ++
- Abstract Factory Design Pattern
- Pakker og N-Ary Association
- Mysql Opret tabel SQL-sætning af Chrys
- Udfør Smertefri SEO med Best Firefox Extensions
- Grundlæggende om C ++ Identifier Scope
- En kort oversigt over SQL Injection
- Programmør Ved Heart
- Edit Control i Windows