*   >> Lectura Educación Artículos >> science >> programación

Hacer un juego en 3D con Ogre - Agregar Effects

inicio (); void apagado (); ParticleSystemEffect * GetParticleSystemEffect (); protegida: ParticleSystemEffectManager (); ParticleSystemEffect * CreateParticleSystemEffect (); ParticleSystemEffectList particleSystemEffectList;}; # endif

ParticleSystemEffectManager.cpp

 #include "ParticleSystemEffectManager.

h"ParticleSystemEffectManager::ParticleSystemEffectManager(){}ParticleSystemEffectManager::~ParticleSystemEffectManager(){}void ParticleSystemEffectManager :: inicio () {} void ParticleSystemEffectManager :: apagado () {for (iter ParticleSystemEffectList :: iterator = particleSystemEffectList.begin (); iter = particleSystemEffectList.end ();! ++ Iter) {ParticleSystemEffect * Efecto = * iter ; si (efecto-> IsStarted ()) efecto-> Apagar (); eliminar el efecto; } ParticleSystemEffectList.

clear ();} ParticleSystemEffect * ParticleSystemEffectManager :: GetParticleSystemEffect () {for (iter ParticleSystemEffectList :: iterator = particleSystemEffectList.begin (); iter = particleSystemEffectList.end ();! ++ Iter) {ParticleSystemEffect * Efecto = * iter; if (! efecto-> IsStarted ()) Efecto de regreso; } ParticleSystemEffect * Efecto = CreateParticleSystemEffect (); particleSystemEffectList.

push_back (efecto); efecto de retorno;} ParticleSystemEffect * ParticleSystemEffectManager :: CreateParticleSystemEffect () {return nueva ParticleSystemEffect ();}

Con el fin de mostrar un efecto de sistema de partículas de la explosión creamos comenzar un objeto ParticleSystemEffect cuando un enemigo se apaga. También jugamos un efecto de sonido de explosión. El nuevo parámetro matado permite la función de apagado sabe si el enemigo se retira del nivel, ya que fue destruido, o porque el nivel en sí es estar apagado (en cuyo caso no queremos añadir algún efecto).


< pre> vacío Enemigo :: apagado (const Bool mató) {if (asesinado) {PARTICLESYSTEMEFFECTMANAGER.GetParticleSystemEffect () -> Puesta en marcha (enemySceneNode-> getPosition (), EXPLOSION_PARTICLE_SYSTEM); IRRKLANGENGINEMANAGER.GetSoundEngine () -> play2D (EXPLOSION_SOUND); } GAMELEVEL.GetPlayerSceneNode () -> removeAndDestroyChild (enemySceneNode-> getName ()); InitialiseVariables (); CollisionObject :: Apagar ();.

}

cambios de código similares se han implementado en la clase de armas para mostrar una pequeña arma efecto golpear


Page   <<  [1] [2] [3] 
Copyright © 2008 - 2016 Lectura Educación Artículos,https://lectura.nmjjxx.com All rights reserved.