*   >> läser Utbildning artiklar >> science >> programming

Att göra en 3D-spel med Ogre - Lägga Effects

ladda ner demot och källkod för Windows Review

ladda ner demot och källkod för Linux Omdömen

TILLBAKA TILL Handledningen INDEX Omdömen

Med kollisionsdetektering igång är det nu möjligt att förstöra fiender. Effekten är lite otillfredsställande men eftersom de helt enkelt försvinner. Vi kan använda en partikelsystem för en explosion, men som standard partikelsystem i Ogre är utformade för att vara bestående effekter, dvs en gång läggas till platsen en partikel system kommer att visa dess effekt tills den tas bort.

Eftersom en explosion är en one off "bang", vi behöver ett sätt att lägga till en partikel-system, vänta tills den är klar, och sedan ta bort det från scenen. Den ParticleSystemEffect klassen kommer att användas för detta ändamål Omdömen

ParticleSystemEffect.h Omdömen

 /* * ParticleSystemEffect.h * * Författare.: Matthew Casperson * Email: [email protected] * Hemsida: http: //www.brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef PARTICLESYSTEMEFFECT_H_ # definierar PARTICLESYSTEMEFFECT_H_ # include "PersistentFrameListener.

h" klass ParticleSystemEffect: public PersistentFrameListener {public: ParticleSystemEffect (); ~ ParticleSystemEffect (); void Startup (const Vector3 & ställning, const String & particleSystemName); void avstängning (); bool FrameStarted (const FrameEvent & evt); skyddas: void InitialiseVariables (); flyta timeToLive; SceneNode * sceneNode; ParticleSystem * particleSystem;}; # EndIf

ParticleSystemEffect.cpp

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

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

Funktionen Startup är mycket lik Autostart funktioner för fiender och vapen i att det skapar en SceneNode som det fäster ett Ogre objekt (en partikel-system i detta fall ) Review

 void ParticleSystemEffect :: Startup (const Vector3 & ställning, const String & particleSystemName) {PersistentFrameListener :: Startup (). sceneNode = GAMELEVEL.GetPlayerSceneNode () -> createChildSceneNode (position); particleSystem = GAMELEVEL.

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

Vi sedan måste räkna ut hur länge partikelsystemet ska köras för innan tas bort från nivån. Varaktigheten egendom sändaren definierar hur länge en partikel systemet ska a

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.