*   >> Lectura Educación Artículos >> science >> programación

Hacer un juego en 3D con Ogre - Agregar Effects

descargar la demo y el código fuente PARA WINDOWS

DESCARGAR EL CÓDIGO DEMO Y FUENTE DE LINUX

VOLVER A EL INDICE TUTORIAL

Con la detección de colisiones en marcha y funcionando, ahora es posible para destruir a los enemigos. El efecto es un poco insatisfactorio, porque aunque ellos simplemente desaparecen.

Podemos utilizar un sistema de partículas para una explosión, sino con sistemas de partículas por defecto de Ogre están diseñados para ser efectos permanentes, es decir, una vez añadido a la escena de un sistema de partículas mostrará su efecto hasta que se retira. Desde una explosión es un fuera de "bang", necesitamos una manera de añadir un sistema de partículas, espere a que termine, y luego eliminarlo de la escena. La clase ParticleSystemEffect será utilizada para este propósito

ParticleSystemEffect.h

 /* * * ParticleSystemEffect.h.

* Autor: Mateo Casperson * Email: [email protected] * Sitio web: http: //www.brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef PARTICLESYSTEMEFFECT_H_ # define PARTICLESYSTEMEFFECT_H_ # incluyen "PersistentFrameListener.h" clase ParticleSystemEffect: PersistentFrameListener pública {public: ParticleSystemEffect (); ParticleSystemEffect ~ (); anular de inicio (const Vector3 y posición, const Cadena y particleSystemName); void apagado (); bool frameStarted (const FrameEvent y evt); protegido: InitialiseVariables void (); flotar timeToLive; SceneNode * SceneNode; ParticleSystem * particleSystem;}; # endif

ParticleSystemEffect.

cpp

 #include "ParticleSystemEffect.h" #include "GameLevel.h" #include "Utilities.h" ParticleSystemEffect :: ParticleSystemEffect () {InitialiseVariables ( );} ParticleSystemEffect :: ~ ParticleSystemEffect () {} 

La función de inicio es muy similar a las funciones de inicio de los enemigos y las armas en que crea un SceneNode al que se atribuye un objeto Ogre (un sistema de partículas, en este caso )

 vacío ParticleSystemEffect :: inicio (const Vector3 y posición, const Cadena y particleSystemName) {PersistentFrameListener :: inicio ().; SceneNode = GAMELEVEL.

GetPlayerSceneNode () -> createChildSceneNode (posición); particleSystem = GAMELEVEL.GetSceneManager () -> createParticleSystem (Utilidades :: GetUniqueName ("ParticleSystemEffect"), particleSystemName); sceneNode-> attachObject (particleSystem);

A continuación, tenemos que trabajar el tiempo que el sistema de partículas debería postularse para ante

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lectura Educación Artículos,https://lectura.nmjjxx.com All rights reserved.