luokkiin kuten soitin, Ase ja Enemy että laajennettu PersistentFrameListener luokan nyt laajentaa CollisionObject luokka. Alla voit nähdä, kuinka Enemy luokka toteuttaa Collision toiminto.
void Enemy :: Collision (CollisionObject * muut) {jos (Muut-> GetCollisionType () == PLAYER_WEAPON_CT) {Ase * ase = static_cast (muut ); this-> kilvet - = weapon-> GetDamage (); jos (this-> suojukset GetCollisionType () == PLAYER_CT) {sammutus (); }}BasicEnemy luokka toteuttaa GetBoundingSphere toiminnon käyttäen rakennettu getWorldBoundingSphere toiminto, joka on käytettävissä kaikissa Ogre MovableObjects (olennaisesti kaikki visuaaliset Ogre esineitä).
Sphere BasicEnemy :: GetBoundingSphere () {palata this- > mesh-> getWorldBoundingSphere ();}muutoksia Weapon, Bullet ja pelaaja luokat ovat samankaltaisia. Voit katsoa lähdekoodia nähdä erityisiä muutokset näihin luokkiin.
Main.cpp
päätehtävä on päivitetty käynnistys ja sammutus CollisionManager luokka.
# include "OgreEngineManager.h" #include "WeaponDatabase.h" #include "EnemyDatabase.h" #include "GameLevel.h" #include "CollisionManager.h" #include "IrrKlangEngineManager.h" #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 # määritellä 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", "Yleinen")); ENGINEMANAGER.AddNewResourceLocation (ResourceLocationDefinition ("zip", "../../media/media.zip", "Yleinen")); jos (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.Shutdown (); GAMELEVEL.Shutdown (); IRRKLANGENGINEMANAGER.Shutdown (); } ENGINEMANAGER.Shutdown ();}
Näiden muutosten viholliset voi kuvata ja pelaaja ja viholliset voi myös törmäävät.
Tällä hetkellä vihollisia ja aseita yksinkertaisesti poistetaan taso, joka on hieman epätyydyttävä, mutta taustalla mekaniikka paikallaan se on helppo l
Aloitusopas Activeperl
- Luominen JavaScript Objects Literal Notation
- Windows Scroll Bar
- Saada Selkeys tiimityöskentelyyn SharePoint Web Parts
- PHP merkkijonon ja päivämäärä Basics
- PushButton opetusohjelma sarja - Enemies
- Java Variables
- Kirjoittaminen Page Frame Allocator
- Miten Kirjoita oma tukemat System
- Windows Staattinen Control
- Uusi Famous HTML Canvas Element