*   >> Lezen Onderwijs artikelen >> science >> programming

Het maken van een 3D-spel met Ogre - Het toevoegen Effects

. Het pand duur van de zender bepaalt hoe lang een particle systeem deeltjes mogen uitstoten voor. Wanneer u deze waarde toevoegen aan de aan de levensduur van de afzonderlijke deeltjes je kunt werken hoe lang het effect zal draaien. We slaan deze waarde in de timeToLive variabele

 timeToLive = particleSystem-> getEmitter 

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

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

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

De FrameStarted functie aftellen van de timeToLive variabele, en wanneer het nul bereikt de Shutdown-functie wordt genoemd, het verwijderen van het particle systeem vanaf het niveau

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

timeSinceLastFrame; if (timeToLive

Net als de vijanden, wapens en andere voorwerpen die reageren op kader gebeurtenissen Ogre, ParticleSystemEffect objecten bestaan ​​in een zwembad, met degenen die klaar zijn om in een zwevende toestand totdat ze worden hergebruikt. De ParticleSystemEffectManager klasse onderhoudt deze pool van ParticleSystemEffect objecten. De code om ParticleSystemEffect objecten te maken, bewaar ze in een zwembad en terug te keren ongebruikte objecten is hetzelfde als de bijbehorende code in de WeaponDatabase en EnemyDatabase klassen.

In feite doet de klasse ParticleSystemEffectManager niets maar onderhouden van deze pool van ParticleSystemEffect objecten.

ParticleSystemEffectManager.h

 /* * ParticleSystemEffectManager.h * * Auteur: Matthew Casperson * E-mail: [email protected] * Website: https://www.brighthub.com/hubfolio/matthew -casperson.aspx * /# ifndef PARTICLESYSTEMEFFECTMANAGER_H_ # definiëren PARTICLESYSTEMEFFECTMANAGER_H_ # include "ParticleSystemEffect.

h" #include "lijst" typedef std :: lijst ParticleSystemEffectList; #define PARTICLESYSTEMEFFECTMANAGER ParticleSystemEffectManager :: aanleg () klasse ParticleSystemEffectManager {public: ~ ParticleSystemEffectManager (); statische ParticleSystemEffectManager & aanleg () {statische ParticleSystemEffectManager bijvoorbeeld; Zo keren; } Leegte Startup

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.