*   >> Læs Uddannelse artikler >> science >> programming

Realiseringen af ​​et 3D-spil med Ogre - Tilføjelse af effekter

Download demoen og kildekode FOR WINDOWS

Download demoen og kildekode til Linux

TILBAGE TIL tutorial INDEX

Med kollisionsdetektion op og køre det er nu muligt at ødelægge fjender. Effekten er lidt utilfredsstillende men fordi de simpelthen forsvinde. Vi kan bruge en partikel system til en eksplosion, men som standard partikel systemer i Ogre er designet til at være permanente effekter, dvs når de er tilføjet til scenen en partikel-system vil vise sin virkning, indtil den fjernes.

Da en eksplosion er en one off "bang", vi har brug for en måde at tilføje en partikel-system, skal du vente til den er færdig, og derefter fjerne det fra scenen. Den ParticleSystemEffect klasse vil blive anvendt til dette formål

ParticleSystemEffect.h

 /* * ParticleSystemEffect.h * * Forfatter:. Matthew Casperson * E-mail: [email protected] * Hjemmeside: http: //www.brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef PARTICLESYSTEMEFFECT_H_ # definerer PARTICLESYSTEMEFFECT_H_ # omfatte "PersistentFrameListener.

h" klasse ParticleSystemEffect: offentlig PersistentFrameListener {public: ParticleSystemEffect (); ~ ParticleSystemEffect (); ugyldiggøre Startup (const Vector3 & position, const String & particleSystemName); void Shutdown (); bool FrameStarted (const FrameEvent & EVT), beskyttet: void InitialiseVariables (); flyde timeToLive; SceneNode * sceneNode; ParticleSystem * particleSystem,}; # endif

ParticleSystemEffect.cpp Salg

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

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

Start funktion er meget lig de Startup funktioner til fjender og våben i, at det skaber en SceneNode, som det tillægger en Ogre objekt (en partikel-system i dette tilfælde )

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

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

Vi derefter nødt til at arbejde ud af, hvor længe partiklen bør køre i, inden den fjernes fra det niveau. Varigheden ejendom emitter definerer, hvor længe en partikel bør udsen

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.