*   >> Leitura Educação Artigos >> science >> programação

Fazendo um jogo 3D com Ogre - Adicionando Effects

Vazio Startup (); Shutdown void (); ParticleSystemEffect GetParticleSystemEffect * (); protegido: ParticleSystemEffectManager (); ParticleSystemEffect CreateParticleSystemEffect * (); ParticleSystemEffectList particleSystemEffectList;}; # endif

ParticleSystemEffectManager.cpp

 # include "ParticleSystemEffectManager.

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

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

push_back (efeito); efeito de regresso;} ParticleSystemEffect * ParticleSystemEffectManager :: CreateParticleSystemEffect () {return new ParticleSystemEffect ();}

A fim de exibir um efeito sistema de partículas para a explosão criamos iniciar um objeto ParticleSystemEffect quando um inimigo é desligado. Nós também desempenhar um efeito de som de explosão. O novo parâmetro permite que matou a função de desligamento saber se o inimigo está sendo removido do nível porque foi destruído, ou porque o próprio nível é ser shutdown (caso em que não queremos para adicionar quaisquer efeitos).


< pre> Inimigo vazio :: Shutdown (const bool mortos) {if (morto) {PARTICLESYSTEMEFFECTMANAGER.GetParticleSystemEffect () -> Startup (enemySceneNode-> getPosition (), EXPLOSION_PARTICLE_SYSTEM); IRRKLANGENGINEMANAGER.GetSoundEngine () -> play2D (EXPLOSION_SOUND); } GAMELEVEL.GetPlayerSceneNode () -> removeAndDestroyChild (enemySceneNode-> getName ()); InitialiseVariables (); CollisionObject :: Shutdown ();.}

código mudanças similares foram implementadas na classe Arma de mostrar uma pequena arma efeito bater


Page   <<  [1] [2] [3] 
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.