*   >> Lecture Éducation Articles >> science >> la programmation

Faire un jeu en 3D avec Ogre - Ajout Effects

rait courir pour avant d'être retiré du niveau. La propriété de la durée de l'émetteur définit combien de temps un système de particules doit émettre des particules pour. Lorsque vous ajoutez cette valeur à la à la durée de vie des particules individuelles, vous pouvez travailler sur combien de temps l'effet durera. Nous conservons cette valeur dans la variable timeToLive

 timeToLive = particleSystem-> getEmitter 

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

(0) -> getTimeToLive ();.

} ParticleSystemEffect vide :: Shutdown ( ) {sceneNode-> detachObject (ParticleSystem); GAMELEVEL.GetSceneManager () -> destroyParticleSystem (ParticleSystem); GAMELEVEL.GetPlayerSceneNode () -> removeAndDestroyChild (sceneNode-> getName ()); InitialiseVariables (); PersistentFrameListener :: shutdown ();} vides ParticleSystemEffect :: InitialiseVariables () {timeToLive = 0; SceneNode = NULL; ParticleSystem = NULL;.

}

La fonction frameStarted décomptera la variable timeToLive, et quand il arrive à zéro la fonction d'arrêt est appelé, en supprimant le système de particules à partir du niveau

 bool ParticleSystemEffect :: frameStarted (const FrameEvent & EVT) {timeToLive - = evt.timeSinceLastFrame; si (timeToLive 

Tout comme les ennemis, des armes et d'autres objets qui répondent aux Ogre événements d'image, les objets ParticleSystemEffect existent dans une piscine, avec ceux qui ont fini d'être dans un état suspendu jusqu'à ce qu'ils soient réutilisés.

La classe ParticleSystemEffectManager maintient cette piscine des objets ParticleSystemEffect. Le code pour créer des objets ParticleSystemEffect, rangez-les dans une piscine et retourner les objets inutilisés est le même que le code correspondant dans les classes WeaponDatabase et EnemyDatabase. En fait la classe ParticleSystemEffectManager ne fait rien, mais maintenir ce pool d'objets ParticleSystemEffect.

ParticleSystemEffectManager.h

 /* * * * ParticleSystemEffectManager.h Auteur: Matthew Casperson * Email: [email protected] * Site Web: https://www.brighthub.

com/hubfolio/matthew -casperson.aspx * /# ifndef PARTICLESYSTEMEFFECTMANAGER_H_ # définir PARTICLESYSTEMEFFECTMANAGER_H_ # include "ParticleSystemEffect.h" #include "liste" typedef std :: liste ParticleSystemEffectList; #define PARTICLESYSTEMEFFECTMANAGER ParticleSystemEffectManager :: instance () classe ParticleSystemEffectManager {public: ~ ParticleSystemEffectManager (); statique ParticleSystemEffectManager & in

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.