*   >> läser Utbildning artiklar >> science >> programming

Att göra en 3D-spel med Ogre - Lägga Effects

vge partiklar för. När du lägger till detta värde till att livslängden på de individuella partiklarna kan du räkna ut hur länge effekten kommer att löpa under. Vi lagrar detta värde i timeToLive variabeln Omdömen
 timeToLive = particleSystem-> getEmitter 

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

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

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

FrameStarted funktionen räkna ner timeToLive variabeln, och när den når noll avstängning funktionen kallas, ta bort partikelsystemet från nivån Omdömen

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

timeSinceLastFrame; if (timeToLive

Precis som fiender, vapen och andra föremål som svarar på Ogre ram händelser finns ParticleSystemEffect objekt i en pool, med dem som har avslutat vara i ett svävande tillstånd tills de återanvänds. Den ParticleSystemEffectManager klassen upprätthåller denna pool av ParticleSystemEffect objekt. Koden för att skapa ParticleSystemEffect objekt, lagra dem i en pool och returnera oanvända objekt är densamma som den motsvarande koden i WeaponDatabase och EnemyDatabase klasser.

I själva verket ParticleSystemEffectManager klassen gör ingenting men behålla denna pool av ParticleSystemEffect objekt.

ParticleSystemEffectManager.h Omdömen

 /* * ParticleSystemEffectManager.h * * Författare: Matthew Casperson * Email: [email protected] * Hemsida: https://www.brighthub.com/hubfolio/matthew -casperson.aspx * /# ifndef PARTICLESYSTEMEFFECTMANAGER_H_ # definierar PARTICLESYSTEMEFFECTMANAGER_H_ # include "ParticleSystemEffect.

h" #include "lista" typedef std :: lista ParticleSystemEffectList, #define PARTICLESYSTEMEFFECTMANAGER ParticleSystemEffectManager :: instansrätten () klass ParticleSystemEffectManager {public: ~ ParticleSystemEffectManager (); statisk ParticleSystemEffectManager & instansrätten () {statisk ParticleSystemEffectManager instans; retur exempel; } Void start (); void avstängning (); ParticleSystemEffect * GetParticleSystemEffect (); skyddad: ParticleSystemEffectManager (); ParticleSystemEffect * CreatePa

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.