*   >> Lectura Educación Artículos >> science >> programación

Hacer un juego en 3D con Ogre - Adición de sonido Effects

descargar la demo y el código fuente PARA WINDOWS

DESCARGAR EL CÓDIGO DEMO Y FUENTE DE LINUX

VOLVER A EL INDICE TUTORIAL

< p> Ogre no tiene soporte para sonidos - se trata de una única representación gráfica del motor. Efecto de sonido en el juego será facilitado por el motor de sonido IrrKlang, que se hace por los chicos que hicieron el motor Irrlicht 3D. IrrKlang es un motor sólido, y vamos a tener que hacer muy poco para conseguirlo en servicio.

Vamos a concluir el motor IrrKlang en un IrrKlangEngineManager llamada clase.

Este es un envoltorio muy fina que, básicamente, se inicia el motor de sonido, lo expone efecto tan sonido se puede jugar, y lo limpia. Además El IrrKlangEngineManager mantendrá referencias a todas las instancias de RandomSoundEffect, que es una clase que vamos a crear para añadir ruidos ambientales aleatorios para el nivel.

IrrKlangEngineManager.h

 /* * IrrKlangEngineManager .h * * Autor: Matthew Casperson * Email: [email protected] * Sitio web: https://www.brighthub.com/hubfolio/matthew-casperson.

aspx * /# ifndef IRRKLANGENGINEMANAGER_H_ # definir IRRKLANGENGINEMANAGER_H_ # incluyen "lista" # incluir "irrKlang.h" #include "RandomSoundEffect.h" typedef std :: Lista RandomSoundEffectList; utilizando irrklang espacio de nombres; #define IRRKLANGENGINEMANAGER IrrKlangEngineManager :: Instancia () Clase IrrKlangEngineManager {public: ~ IrrKlangEngineManager (); estática y IrrKlangEngineManager Instancia () {instancia IrrKlangEngineManager estática; volver instancia; } Void inicio (); void apagado (); ISoundEngine * GetSoundEngine () const {motor de retorno;} RandomSoundEffect * GetRandomSoundEffect (); protegida: IrrKlangEngineManager (); InitialiseVariables void (); ISoundEngine * motor; RandomSoundEffectList randomSounds;}; # endif

IrrKlangEngineManager.

cpp

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

La función de inicio inicializa el motor IrrKlang, y mantiene un puntero a ella

 vacío IrrKlangEngineManager :: inicio () {motor = createIrrKlangDevice ();} < p> La función de apagado se apaga y elimina todos los objetos RandomSoundEffect, y destruye el motor de sonido IrrKlang.


 anulará IrrKlangEngineManager :: apagado () {for (iter RandomSoundEffectList :: iterator = randomSounds.begin () ;! iter = randomSounds.end (); ++ iter) {RandomSoundEffect * Efecto = * iter; si (efecto-> IsStarted ()) efecto->

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lectura Educación Artículos,https://lectura.nmjjxx.com All rights reserved.