*   >> Lese Utdanning Artikler >> science >> programming

Å gjøre en 3D-spill med Ogre - Legge Effects

å levetiden til de enkelte partikler kan du regne ut hvor lenge effekten vil kjøre for. Vi lagrer denne verdien i timeToLive variable

 timeToLive = particleSystem-> getEmitter 

(0) -> getDuration () + particleSystem-> getEmitter

(0) -> getTimeToLive ();.} Void ParticleSystemEffect :: Shutdown ( ) {sceneNode-> detachObject (particleSystem); GAMELEVEL.GetSceneManager () -> destroyParticleSystem (particleSystem); GAMELEVEL.

GetPlayerSceneNode () -> removeAndDestroyChild (sceneNode-> getName ()); InitialiseVariables (); PersistentFrameListener :: Shutdown ();} void ParticleSystemEffect :: InitialiseVariables () {timeToLive = 0; sceneNode = NULL; particleSystem = NULL;.}

FrameStarted funksjonen vil telle ned timeToLive variabel, og når den når null Shutdown funksjonen kalles, fjerne partikkelsystem fra nivået

 bool ParticleSystemEffect :: FrameStarted (konst FrameEvent & evt) {timeToLive - = evt.

timeSinceLastFrame; if (timeToLive

Akkurat som fiender, våpen og andre gjenstander som reagerer på Ogre ramme hendelser, ParticleSystemEffect objektene finnes i et basseng, med de som er ferdig med å være i en suspendert tilstand før de brukes på nytt. Den ParticleSystemEffectManager klassen opprettholder dette bassenget av ParticleSystemEffect stedene. Koden for å skape ParticleSystemEffect objekter, lagre dem i et basseng og returnere ubrukte gjenstander er den samme som den tilsvarende koden i WeaponDatabase og EnemyDatabase klasser.

Faktisk ParticleSystemEffectManager klassen gjør ingenting, men opprettholde denne pool av ParticleSystemEffect stedene.

ParticleSystemEffectManager.h

 /* * ParticleSystemEffectManager.h * * Forfatter: Matthew Casperson * E-post: [email protected] * Nettside: https://www.brighthub.com/hubfolio/matthew -casperson.aspx * /# ifndef PARTICLESYSTEMEFFECTMANAGER_H_ # definere PARTICLESYSTEMEFFECTMANAGER_H_ # include "ParticleSystemEffect.

h" #include "list" typedef std :: liste ParticleSystemEffectList; #define PARTICLESYSTEMEFFECTMANAGER ParticleSystemEffectManager :: Instance () klasse ParticleSystemEffectManager {public: ~ ParticleSystemEffectManager (); statisk ParticleSystemEffectManager & Instance () {statisk ParticleSystemEffectManager eksempel; returnere eksempel; } Void Startup (); void Shutdown (); ParticleSystemEffect * GetParticleSystemEffect (); beskyttet: ParticleSystemEffectManager (); ParticleSystemEffect * CreateParticleSystemEffect (); ParticleSystemEffectList particleSyste

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.