*   >> Læs Uddannelse artikler >> science >> programming

Realiseringen af ​​et 3D-spil med Ogre - Tilføjelse af effekter

de partikler efter. Når du tilføjer denne værdi til at levetiden for de enkelte partikler kan du regne ud, hvor længe effekten vil køre i. Vi gemmer denne værdi i timeToLive variabel

 timeToLive = particleSystem-> getEmitter 

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

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

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

FrameStarted Funktionen vil tælle ned timeToLive variabel, og når den når nul Shutdown funktionen kaldes, fjerne partikelsystem fra det niveau

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

timeSinceLastFrame; hvis (timeToLive

Ligesom fjender, våben og andre genstande, der reagerer på Ogre frame begivenheder, findes ParticleSystemEffect objekter i en pool, med dem, der er færdig med at være i en ophængt tilstand, indtil de bliver genbrugt. Det ParticleSystemEffectManager klasse fastholder denne pulje af ParticleSystemEffect objekter. Koden til at skabe ParticleSystemEffect objekter, gemme dem i en pulje og returnere ubrugte objekter er den samme som den tilsvarende kode i WeaponDatabase og EnemyDatabase klasser.

Faktisk ParticleSystemEffectManager klassen ikke noget, men opretholde denne pulje af ParticleSystemEffect objekter.

ParticleSystemEffectManager.h

 /* * ParticleSystemEffectManager.h * * Forfatter: Matthew Casperson * E-mail: [email protected] * Hjemmeside: https://www.brighthub.com/hubfolio/matthew -casperson.aspx * /# ifndef PARTICLESYSTEMEFFECTMANAGER_H_ # definerer PARTICLESYSTEMEFFECTMANAGER_H_ # omfatte "ParticleSystemEffect.

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

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.