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

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

; ParticleSystemEffectList particleSystemEffectList;}; # endif

ParticleSystemEffectManager.cpp

 #include "ParticleSystemEffectManager.h"ParticleSystemEffectManager::ParticleSystemEffectManager(){}ParticleSystemEffectManager::~ParticleSystemEffectManager(){}void ParticleSystemEffectManager :: Startup () {} ugyldig ParticleSystemEffectManager :: Shutdown () {for (ParticleSystemEffectList :: iterator iter = particleSystemEffectList.begin (); ITER = particleSystemEffectList.

end ();! ++ ITER) {ParticleSystemEffect * effekt = * iter ; hvis (virkning-> IsStarted ()) virkning-> Shutdown (); slet effekt; } ParticleSystemEffectList.clear ();} ParticleSystemEffect * ParticleSystemEffectManager :: GetParticleSystemEffect () {for (ParticleSystemEffectList :: iterator iter = particleSystemEffectList.begin (); ITER = particleSystemEffectList.end ();! ++ ITER) {ParticleSystemEffect * effekt = * ITER if (! virkning-> IsStarted ()) returnerer virkning } ParticleSystemEffect * effekt = CreateParticleSystemEffect (); particleSystemEffectList.

push_back (virkning); returnere virkning} ParticleSystemEffect * ParticleSystemEffectManager :: CreateParticleSystemEffect () {return nyt ParticleSystemEffect ();}

For at vise en partikel-system effekt for eksplosionen skaber vi starte en ParticleSystemEffect objekt, når en fjende er lukket ned. Vi spiller også en eksplosion lydeffekt. Den nye dræbt parameter lader Shutdown funktionen vide, hvis fjenden bliver fjernet fra det niveau, fordi det blev ødelagt, eller fordi niveauet i sig selv er at være nedlukning (i hvilket tilfælde vi ikke ønsker at tilføje effekter).


< pre> ugyldig Enemy :: Shutdown (const bool dræbt) {if (dræbt) {PARTICLESYSTEMEFFECTMANAGER.GetParticleSystemEffect () -> Startup (enemySceneNode-> getPosition (), EXPLOSION_PARTICLE_SYSTEM); IRRKLANGENGINEMANAGER.GetSoundEngine () -> play2D (EXPLOSION_SOUND); } GAMELEVEL.GetPlayerSceneNode () -> removeAndDestroyChild (enemySceneNode-> getNavn ()); InitialiseVariables (); CollisionObject :: Shutdown ();.}

Lignende kode ændringer er blevet implementeret i Weapon klasse til at vise en lille våben hit effekt


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