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

Fazendo um jogo 3D com Ogre - Adicionando Effects

propriedade duração do emissor define quanto tempo um sistema de partículas deve emitir partículas para. Quando você adiciona este valor para o que a vida útil das partículas individuais que você pode trabalhar para fora quanto tempo o efeito será executado para. Nós armazenar este valor na variável timeToLive

 timeToLive = particleSystem-> getEmitter 

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

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

GetSceneManager () -> destroyParticleSystem (particleSystem); GAMELEVEL.GetPlayerSceneNode () -> removeAndDestroyChild (sceneNode-> getName ()); InitialiseVariables (); PersistentFrameListener :: Shutdown ();} vazios ParticleSystemEffect :: InitialiseVariables () {timeToLive = 0; SceneNode = NULL; particleSystem = NULL;.

}

A função FrameStarted fará uma contagem regressiva a variável timeToLive, e quando chega a zero a função de Shutdown é chamado, a remoção do sistema de partículas a partir do nível

 bool ParticleSystemEffect :: FrameStarted (const FrameEvent & evt) {timeToLive - = evt.timeSinceLastFrame; if (timeToLive 

Assim como os inimigos, armas e outros objetos que respondem a Ogre eventos de quadros, objetos ParticleSystemEffect existir em uma piscina, com aqueles que tenham terminado estar em um estado suspenso até que sejam reutilizados.

A classe ParticleSystemEffectManager mantém esta piscina de objetos ParticleSystemEffect. O código para criar objetos ParticleSystemEffect, armazená-los em uma piscina e retornar objetos não utilizados é o mesmo que o código correspondente nas classes WeaponDatabase e EnemyDatabase. Na verdade, a classe ParticleSystemEffectManager não faz nada, mas manter esse pool de objetos ParticleSystemEffect.

ParticleSystemEffectManager.h

 /* * * * ParticleSystemEffectManager.h Autor: Matthew Casperson * Email: * [email protected] Website: https://www.brighthub.

com/hubfolio/matthew -casperson.aspx * /# ifndef PARTICLESYSTEMEFFECTMANAGER_H_ # definir PARTICLESYSTEMEFFECTMANAGER_H_ # incluem "ParticleSystemEffect.h" "lista" #include typedef std :: lista ParticleSystemEffectList; #define PARTICLESYSTEMEFFECTMANAGER ParticleSystemEffectManager :: Instância () classe ParticleSystemEffectManager {public: ~ ParticleSystemEffectManager (); estática ParticleSystemEffectManager & Instância () {instância ParticleSystemEffectManager estático; instância retornar; }

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