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

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

<р> Скачать демо и исходники ДЛЯ WINDOWS

<р> Скачать демо и исходники для Linux

<р> Возврат к учебнику ИНДЕКС

С обнаружения столкновений до и работает это Теперь можно уничтожить врагов. Эффект немного неудовлетворительным, хотя, потому что они просто исчезают. Мы можем использовать систему частиц для взрыва, а системы частиц по умолчанию в Огре предназначены для постоянных эффектов, т.е. один раз добавлен к сцене система частиц будет отображать его действие, пока не будет удалена.

Поскольку взрыв разовое "взрыва", нам нужен способ, чтобы добавить систему частиц, ждать его, чтобы закончить, а затем удалить его со сцены. Класс ParticleSystemEffect будет использоваться для этой цели

<р> ParticleSystemEffect.h

 /* * * * ParticleSystemEffect.h Автор:. Мэтью Касперсон * E-mail: * [email protected] Веб-сайт: //www.brighthub.com/hubfolio/matthew-casperson.aspx * /# IfNDef PARTICLESYSTEMEFFECT_H_ # определить PARTICLESYSTEMEFFECT_H_ # включить "PersistentFrameListener.

h" класс ParticleSystemEffect: общественная PersistentFrameListener {общественности: ParticleSystemEffect (); ~ ParticleSystemEffect (); аннулированию Startup (Пост Vector3 & положение, строительства Струнный & particleSystemName); Выключение недействительными (); BOOL FrameStarted (строительства FrameEvent & ЭВТ); защищены: недействительными InitialiseVariables (); плавать TimeToLive; SceneNode * SceneNode; ParticleSystem * ParticleSystem;}; # ENDIF

ParticleSystemEffect.cpp

 #include "ParticleSystemEffect.h" #include "GameLevel.h" #include "Utilities.

h" ParticleSystemEffect :: ParticleSystemEffect () {InitialiseVariables ( );} ParticleSystemEffect :: ~ ParticleSystemEffect () {} <р> Функция запуска очень похож на Startup функций для врагов и оружия, что он создает SceneNode, к которому он присоединяет объект Ogre (система частиц в этом случае )

 пустот ParticleSystemEffect :: Startup (Пост Vector3 & положение, строительства Струнный & particleSystemName) {PersistentFrameListener :: Startup (). SceneNode = GAMELEVEL.GetPlayerSceneNode () -> createChildSceneNode (должность); ParticleSystem = GAMELEVEL.

GetSceneManager () -> createParticleSystem (Утилиты :: GetUniqueName ("ParticleSystemEffect"), particleSystemName); sceneNode-> attachObject (ParticleSystem); <р> Затем мы должны работать, как долго система частиц должен работать до удаления от уровня. Продолжительность собственностью эмитента определяет, как долго система частиц должна

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