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

Faire un jeu en 3D avec Ogre - Ajout Effects

stance () {Instance ParticleSystemEffectManager statique; retourner instance; } Vide démarrage (); void shutdown (); ParticleSystemEffect * GetParticleSystemEffect (); protégée: ParticleSystemEffectManager (); ParticleSystemEffect CreateParticleSystemEffect * (); ParticleSystemEffectList particleSystemEffectList;}; # endif

ParticleSystemEffectManager.cpp

 #include "ParticleSystemEffectManager.

h"ParticleSystemEffectManager::ParticleSystemEffectManager(){}ParticleSystemEffectManager::~ParticleSystemEffectManager(){}void ParticleSystemEffectManager :: démarrage () {} de ParticleSystemEffectManager vide :: shutdown () {for (ParticleSystemEffectList :: iterator iter = particleSystemEffectList.begin (); iter = particleSystemEffectList.end ();! ++ Iter) {* ParticleSystemEffect effet = * iter ; si (effect-> isStarted ()) effect-> Shutdown (); supprimer effet; } ParticleSystemEffectList.

clear ();} ParticleSystemEffect * ParticleSystemEffectManager :: GetParticleSystemEffect () {for (ParticleSystemEffectList :: iterator iter = particleSystemEffectList.begin (); iter = particleSystemEffectList.end ();! ++ Iter) {* ParticleSystemEffect effet = * ITER; if (! effect-> isStarted ()) revenir effet; } * ParticleSystemEffect effet = CreateParticleSystemEffect (); particleSystemEffectList.

push_back (effet); effet revenir;} ParticleSystemEffect * ParticleSystemEffectManager :: CreateParticleSystemEffect () {return new ParticleSystemEffect ();}

Pour afficher un effet de système de particules de l'explosion nous créons commencer un objet ParticleSystemEffect quand un ennemi est arrêté. Nous jouons également un effet de son explosion. Le nouveau paramètre tué permet la fonction d'arrêt savoir si l'ennemi est supprimé à partir du niveau parce qu'elle a été détruite, soit parce que le niveau lui-même est d'être l'arrêt (dans ce cas, nous ne voulons pas d'ajouter des effets).


< pre> Enemy vide :: Shutdown (const tué Bool) {if (tué) {PARTICLESYSTEMEFFECTMANAGER.GetParticleSystemEffect () -> Startup (enemySceneNode-> getPosition (), EXPLOSION_PARTICLE_SYSTEM); IRRKLANGENGINEMANAGER.GetSoundEngine () -> play2D (EXPLOSION_SOUND); } GAMELEVEL.GetPlayerSceneNode () -> removeAndDestroyChild (enemySceneNode-> getName ()); InitialiseVariables (); CollisionObject :: shutdown ();.

}

Les codes changements similaires ont été mises en œuvre dans la classe d'arme à montrer une petite arme frappé effet


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