*   >> Lese Utdanning Artikler >> science >> programming

Å gjøre en 3D-spill med Ogre - Legge Effects

Last ned demoen og kildekode FOR WINDOWS

Last ned demoen og kildekode for Linux

TILBAKE TIL TUTORIAL INDEX

Med dueller oppe og går er det nå mulig å ødelegge fiender. Effekten er litt utilfredsstillende, men fordi de rett og slett forsvinner. Vi kan bruke en partikkel system for en eksplosjon, men som standard partikkelsystemer i Ogre er designet for å være varige effekter, dvs. en gang lagt til åstedet en partikkel system vil vise sin kraft før den er fjernet.

Siden en eksplosjon er en one off "bang", trenger vi en måte å legge til en partikkel system, må du vente til den er ferdig, og deretter fjerne det fra scenen. Den ParticleSystemEffect klassen vil bli brukt til dette formålet

ParticleSystemEffect.h

 /* * ParticleSystemEffect.h * * Forfatter:. Matthew Casperson * E-post: [email protected] * Nettsted: http: //www.brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef PARTICLESYSTEMEFFECT_H_ # definere PARTICLESYSTEMEFFECT_H_ # include "PersistentFrameListener.

h" class ParticleSystemEffect: public PersistentFrameListener {public: ParticleSystemEffect (); ~ ParticleSystemEffect (); ugyldig Startup (konst Vector3 & posisjon, konst String & particleSystemName); void Shutdown (); bool FrameStarted (konst FrameEvent & evt), beskyttet: void InitialiseVariables (); flyte timeToLive; SceneNode * sceneNode; ParticleSystem * particleSystem;}; # endif

ParticleSystemEffect.cpp

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

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

Startup funksjonen er svært lik de funksjonene Oppstart for fiender og våpen i at det skaper en SceneNode som det festes en Ogre objekt (en partikkel system i dette tilfellet )

 void ParticleSystemEffect :: Startup (konst Vector3 & posisjon, konst String & particleSystemName) {PersistentFrameListener :: Startup (.); sceneNode = GAMELEVEL.GetPlayerSceneNode () -> createChildSceneNode (stilling); particleSystem = GAMELEVEL.

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

Vi må regne ut hvor lang partikkelsystemet bør kjøre for før han ble fjernet fra det nivået. Varigheten eiendom emitter definerer hvor lenge en partikkel system bør avgi partikler for. Når du legger denne verdien til

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.