Käynnistys ja sammutus toiminnot lisätä ja poistaa paikalliset objektin CollisionManager.
mitätöi CollisionObject :: Startup () {PersistentFrameListener :: Startup ();} void CollisionObject :: sammutus () {PersistentFrameListener :: sammutus ();}PersistentFrameListener.h
Toinen suuri ongelma törmäys havaitseminen on varmistaa esineitä eivät liiku toistensa läpi kehyksen aikana.
Me käsitellään tätä asettamalla korkein aika kunkin kehyksen, joka, olettaen törmätä esineet eivät ole liian pieniä ja liikkuvat liian nopeasti, varmistaa, että kaksi esineitä. Tämä tehdään PersistentFrameListener luokassa, joka sisältää nyt myös toiminto nimeltään FrameEnded, jota kutsutaan kerran kehystä jälkeen FrameStarted on kehottanut kaikkia vaikuttavia esineitä.
/* * PersistentFrameListener.h * * Tekijä: Matthew Casperson * Sähköposti: [email protected] * Verkkosivusto: https://www.brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef PERSISTENTFRAMELISTENER_H_ # määritellä PERSISTENTFRAMELISTENER_H_ # include "Ogre.h" # include "OgreEngineManager.h "#include" GameConstants.h "luokka PersistentFrameListener: julkinen FrameListener {julkinen: PersistentFrameListener (): isStarted (false) {ENGINEMANAGER.GetRoot () -> addFrameListener (tämä); } Virtuaalinen ~ PersistentFrameListener () {jos (ENGINEMANAGER.GetRoot ()! = NULL) ENGINEMANAGER.
GetRoot () -> removeFrameListener (tämä); } Void Startup () {isStarted = true; } Void sammutus () {isStarted = false; } BOOL frameStarted (vakio FrameEvent & EVT) {jos (this-> isStarted) palaa FrameStarted (GetFixedFrameEvent (EVT)); return true; } BOOL frameEnded (vakio FrameEvent & EVT) {jos (this-> isStarted) palaa FrameEnded (GetFixedFrameEvent (EVT)); return true; } Virtuaalinen BOOL FrameStarted (vakio FrameEvent & EVT) {return true;} virtuaalinen BOOL FrameEnded (vakio FrameEvent & EVT) {return true;} BOOL IsStarted () const {palata isStarted;} suojattu: FrameEvent GetFixedFrameEvent (vakio FrameEvent & EVT) {FrameEvent vahvistettu; fixed.
timeSinceLastFrame = evt.timeSinceLastFrame> MAX_FRAME_TIME? MAX_FRAME_TIME: evt.timeSinceLastFrame; palata kiinteä; } Bool isStarted,}, # endif /* PERSISTENTFRAMELISTENER_H_ * /
CollisionManager on, jos kaikki objektit testataan toisiaan vastaan törmäyksiä.
CollisionManager.h
/* * CollisionManager.h * * Tekijä: Matthew Casperson * Sähköposti: matthewcasperson@gmailAloitusopas 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