*   >> Чтение Образование Статьи >> science >> programming

Создание игры 3D с Огре - Добавление эффектов

eSystemEffect (); защищены: ParticleSystemEffectManager (); ParticleSystemEffect * CreateParticleSystemEffect (); ParticleSystemEffectList particleSystemEffectList;}; # ENDIF <р> ParticleSystemEffectManager.cpp

 #include "ParticleSystemEffectManager.h"ParticleSystemEffectManager::ParticleSystemEffectManager(){}ParticleSystemEffectManager::~ParticleSystemEffectManager(){}void ParticleSystemEffectManager :: Ввод в эксплуатацию () {} недействительным ParticleSystemEffectManager :: Shutdown () {для (ParticleSystemEffectList :: итератор ИТЭР = particleSystemEffectList.

begin (); ИТЭР = particleSystemEffectList.end (!); ++ ИТЭР) {ParticleSystemEffect * эффект = * ИТЭР ; если (вибрация> IsStarted ()) эффект-> Выключение (); удалить эффект; } ParticleSystemEffectList.clear ();} ParticleSystemEffect * ParticleSystemEffectManager :: GetParticleSystemEffect () {для (ParticleSystemEffectList :: итератор ИТЭР = particleSystemEffectList.begin (); ИТЭР = particleSystemEffectList.

end (!); ++ ИТЭР) {ParticleSystemEffect * эффект = * ИТЭР; если (! эффект-> IsStarted ()) вернуться в силу; } ParticleSystemEffect * эффект = CreateParticleSystemEffect (); particleSystemEffectList.push_back (эффект); вернуться в силу;} ParticleSystemEffect * ParticleSystemEffectManager :: CreateParticleSystemEffect () {вернуть новый ParticleSystemEffect ();} <р> Для того, чтобы отобразить системную частиц эффект взрыва, мы создаем начать объект ParticleSystemEffect, когда враг остановлен. Мы также играть звуковой эффект взрыва.

Новый убил параметр позволяет функция отключения знать, если враг удаляется от уровня, потому что он был уничтожен, или потому, что сам уровень бытия выключение (в этом случае мы не хотим, чтобы добавлять эффекты).

< предварительно> недействительным Враг :: Shutdown (строительства BOOL убит) {если (убит) {PARTICLESYSTEMEFFECTMANAGER.GetParticleSystemEffect () -> Ввод в эксплуатацию (enemySceneNode-> GetPosition (), EXPLOSION_PARTICLE_SYSTEM); IRRKLANGENGINEMANAGER.GetSoundEngine () -> play2D (EXPLOSION_SOUND); } GAMELEVEL.

GetPlayerSceneNode () -> removeAndDestroyChild (enemySceneNode-> GetName ()); InitialiseVariables (); CollisionObject :: Shutdown ();.} <Р> Аналогичные изменения кода были реализованы в классе оружие, чтобы показать небольшую оружие удар эффект

<р>

Page   <<  [1] [2] [3] 
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.