*   >> Lezen Onderwijs artikelen >> science >> programming

Het maken van een 3D-spel met Ogre - Het toevoegen Effects

Download de demo en de broncode voor Windows

Download de demo en de broncode voor Linux

Terug naar de tutorial INDEX

Met collision detection up and running is het nu mogelijk om de vijanden te vernietigen. Het effect is een beetje onbevredigend maar omdat ze gewoon verdwijnen. We kunnen een deeltje systeem gebruiken voor een explosie, maar standaard deeltjessystemen in Ogre zijn ontworpen om blijvende effecten, dwz een keer toegevoegd aan de scène een deeltje systeem zal het effect weer te geven totdat het wordt verwijderd.

Sinds een explosie is een one-off "bang", moeten we een manier vinden om een ​​deeltje systeem toe te voegen, te wachten tot het klaar is, en verwijder deze vervolgens uit de scene. De ParticleSystemEffect klasse zal worden gebruikt voor dit doel

ParticleSystemEffect.h

 /* * ParticleSystemEffect.h * * Auteur:. Matthew Casperson * E-mail: [email protected] * Website: http: //www.brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef PARTICLESYSTEMEFFECT_H_ # definiëren PARTICLESYSTEMEFFECT_H_ # include "PersistentFrameListener.

h" class ParticleSystemEffect: public PersistentFrameListener {public: ParticleSystemEffect (); ~ ParticleSystemEffect (); ongeldig Startup (const Vector3 & positie, const String & particleSystemName); leegte Shutdown (); bool FrameStarted (const FrameEvent & EVT); beschermd: void InitialiseVariables (); drijven timeToLive; SceneNode * sceneNode; ParticleSystem * particleSystem;} # endif

ParticleSystemEffect.cpp

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

h" ParticleSystemEffect :: ParticleSystemEffect () {InitialiseVariables ( );} ParticleSystemEffect :: ~ ParticleSystemEffect () {}

De inbedrijfstellingsfunctie is zeer vergelijkbaar met de inbedrijfstellingsfuncties de vijanden en wapens die het creëert een SceneNode waaraan zij een Ogre object (een deeltjessysteem hecht in dit geval )

 leegte ParticleSystemEffect :: Startup (const Vector3 & positie, const String & particleSystemName) {PersistentFrameListener :: Startup ().; sceneNode = GAMELEVEL.GetPlayerSceneNode () -> createChildSceneNode (positie); particleSystem = GAMELEVEL.

GetSceneManager () -> createParticleSystem (Utilities :: GetUniqueName ("ParticleSystemEffect"), particleSystemName); sceneNode-> attachObject (particleSystem);

We moeten vervolgens uit te werken hoe lang het deeltje systeem moet draaien voordat ze vanuit de level wordt verwijderd

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.