*   >> Lecture Éducation Articles >> science >> la programmation

Faire un jeu en 3D avec Ogre - Ajout Effects

Téléchargez la démo et le code source pour Windows

Téléchargez la démo et SOURCE CODE DE

LE RETOUR DE LINUX AU index du tutoriel

Avec détection de collision et en cours d'exécution, il est maintenant possible de détruire les ennemis. L'effet est un peu insatisfaisant mais parce qu'ils disparaissent tout simplement.

Nous pouvons utiliser un système de particules pour une explosion, mais par des systèmes de particules par défaut dans Ogre sont conçus pour être des effets permanents dire une fois ajouté à la scène un système de particules affichera son effet jusqu'à ce qu'il soit retiré. Depuis une explosion est un hors "bang", nous devons trouver un moyen d'ajouter un système de particules, attendez qu'elle se termine, puis le retirer de la scène. La classe ParticleSystemEffect sera utilisé à cette fin

ParticleSystemEffect.h

 /* * * * ParticleSystemEffect.h Auteur:.

Matthew Casperson * Email: [email protected] * Site web: http: //www.brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef PARTICLESYSTEMEFFECT_H_ # définissent PARTICLESYSTEMEFFECT_H_ # include "PersistentFrameListener.h« classe ParticleSystemEffect: PersistentFrameListener {public: ParticleSystemEffect (); ParticleSystemEffect ~ (); annuler démarrage (const Vector3 & position const String & particleSystemName); void shutdown (); bool frameStarted (const FrameEvent & EVT); protégé: InitialiseVariables void (); flotter timeToLive; SceneNode * SceneNode; ParticleSystem * ParticleSystem;}; # endif

ParticleSystemEffect.

cpp

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

La fonction de démarrage est très similaire aux fonctions de démarrage pour les ennemis et d'armes en ce qu'il crée un SceneNode à laquelle il attache un objet Ogre (un système de particules dans ce cas )

 vide ParticleSystemEffect :: démarrage (const Vector3 & position const String & particleSystemName) {PersistentFrameListener :: démarrage ().

; SceneNode = GAMELEVEL.GetPlayerSceneNode () -> createChildSceneNode (position); ParticleSystem = GAMELEVEL.GetSceneManager () -> createParticleSystem (Utilities :: GetUniqueName ("ParticleSystemEffect"), particleSystemName); sceneNode-> AttachObject (ParticleSystem);

Nous devons ensuite travailler combien de temps le système de particules dev

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.