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

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

(); leegte Shutdown (); ParticleSystemEffect * GetParticleSystemEffect (); beschermd: ParticleSystemEffectManager (); ParticleSystemEffect * CreateParticleSystemEffect (); ParticleSystemEffectList particleSystemEffectList;} # endif

ParticleSystemEffectManager.cpp

 #include "ParticleSystemEffectManager.

h"ParticleSystemEffectManager::ParticleSystemEffectManager(){}ParticleSystemEffectManager::~ParticleSystemEffectManager(){}void ParticleSystemEffectManager :: Startup () {} leegte ParticleSystemEffectManager :: Shutdown () {voor (ParticleSystemEffectList :: iterator iter = particleSystemEffectList.begin (); iter = particleSystemEffectList.end ();! ++ Iter) {ParticleSystemEffect * effect = * iter ; if (effect-> IsStarted ()) effect-> Shutdown (); effect verwijderen; } ParticleSystemEffectList.

clear ();} ParticleSystemEffect * ParticleSystemEffectManager :: GetParticleSystemEffect () {voor (ParticleSystemEffectList :: iterator iter = particleSystemEffectList.begin (); iter = particleSystemEffectList.end ();! ++ Iter) {ParticleSystemEffect * effect = * iter; if (! effect-> IsStarted ()) terug effect; } ParticleSystemEffect * effect = CreateParticleSystemEffect (); particleSystemEffectList.

push_back (effect); terug effect;} ParticleSystemEffect * ParticleSystemEffectManager :: CreateParticleSystemEffect () {return nieuwe ParticleSystemEffect ();}

Om een ​​deeltje systeem effect voor de explosie creëren we beginnen met een ParticleSystemEffect object wanneer een vijand wordt stilgelegd geven. We een explosie geluidseffect spelen ook. De nieuwe gedood parameter kunt de Shutdown functie weten of de vijand wordt van het niveau wordt verwijderd omdat het werd vernietigd, of omdat het niveau zelf wordt uitgeschakeld (in dat geval willen we niet dat deze effecten toe te voegen).


< pre> leegte Enemy :: Shutdown (const Bool gedood) {if (gedood) {PARTICLESYSTEMEFFECTMANAGER.GetParticleSystemEffect () -> Startup (enemySceneNode-> getPosition (), EXPLOSION_PARTICLE_SYSTEM); IRRKLANGENGINEMANAGER.GetSoundEngine () -> play2D (EXPLOSION_SOUND); } GAMELEVEL.GetPlayerSceneNode () -> removeAndDestroyChild (enemySceneNode-> getName ()); InitialiseVariables (); CollisionObject :: Shutdown ();.

}

Soortgelijke veranderingen code hebben in het Wapen klasse geïmplementeerd om een ​​klein wapen hit effect Show |

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