*   >> lukeminen koulutus Artikkelit >> science >> programming

Making 3D-peli, jossa Ogre - Collision Detection

ionObject () {COLLISIONMANAGER.RemoveCollisionObject (tämä);}

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@gmail

Page   <<  [1] [2] [3] [4] [5] [6] >>
Copyright © 2008 - 2016 lukeminen koulutus Artikkelit,https://koulutus.nmjjxx.com All rights reserved.