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

Faire un jeu 3D avec Ogre - Ajout de son 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

< p> Ogre n'a pas de support pour les sons - il est un moteur de rendu graphique uniquement. Effet sonore dans le jeu sera fourni par le moteur sonore IrrKlang, qui est faite par les gars qui ont fait le irrlicht 3D. IrrKlang est un moteur solide, et nous allons devoir faire très peu pour obtenir en place et fonctionne.

Nous allons conclure le moteur IrrKlang dans un IrrKlangEngineManager d'appel de classe.

Ceci est un wrapper très mince qui commence essentiellement le moteur sonore, expose effet si son peut être joué, et le nettoie. En outre, les IrrKlangEngineManager maintiendra des références à toutes les instances de RandomSoundEffect, qui est une classe que nous allons créer pour ajouter des bruits ambiants aléatoires au niveau.

IrrKlangEngineManager.h

 /* * IrrKlangEngineManager .h * * Auteur: Matthew Casperson * Email: [email protected] * Site Web: https://www.brighthub.com/hubfolio/matthew-casperson.

aspx * /# ifndef IRRKLANGENGINEMANAGER_H_ # définir IRRKLANGENGINEMANAGER_H_ # include "liste" # inclure "irrKlang.h" #include "RandomSoundEffect.h" typedef std :: liste RandomSoundEffectList; using namespace irrklang; #define IRRKLANGENGINEMANAGER IrrKlangEngineManager :: instance () classe IrrKlangEngineManager {public: ~ IrrKlangEngineManager (); statique IrrKlangEngineManager & instance () {Instance IrrKlangEngineManager statique; retourner instance; } Vide démarrage (); void shutdown (); ISoundEngine * const {moteur de retour;} de GetSoundEngine () * RandomSoundEffect GetRandomSoundEffect (); protégée: IrrKlangEngineManager (); InitialiseVariables void (); * ISoundEngine moteur; RandomSoundEffectList randomSounds;}; # endif

IrrKlangEngineManager.

cpp

 #include "IrrKlangEngineManager.h" IrrKlangEngineManager :: IrrKlangEngineManager () {InitialiseVariables ();} IrrKlangEngineManager :: ~ IrrKlangEngineManager () {} IrrKlangEngineManager vide: :. InitialiseVariables () {moteur = NULL;} 

La fonction de démarrage initialise le moteur IrrKlang, et maintient un pointeur vers elle

 IrrKlangEngineManager vide :: démarrage () {moteur = createIrrKlangDevice ();} < p> La fonction d'arrêt arrête et supprime tous les objets RandomSoundEffect, et la détruit le moteur de son IrrKlang.


 annuler IrrKlangEngineManager :: shutdown () {for (RandomSoundEffectList :: iterator iter = randomSounds.begin () ;! iter = randomSounds.end (); ++ iter) {* RandomSoundEffect effet = * iter; si (effect-> isStarted ()) effect->

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