*   >> Leitura Educação Artigos >> science >> programação

Fazendo um jogo 3D com Ogre - Adicionando o som Effects

o download do demo e código fonte PARA WINDOWS

o download do demo e código fonte para Linux

Voltar ao Índice TUTORIAL

< p> Ogre não tem suporte para sons - é uma renderização de gráficos único motor. Efeito de som no jogo será uma cortesia do motor de som IrrKlang, que é feito pelos caras que fizeram o motor Irrlicht 3D. IrrKlang é um motor sólido, e nós vamos ter que fazer muito pouco para obtê-lo em funcionamento.

Vamos encerrar o motor IrrKlang em um IrrKlangEngineManager chamada classe.

Este é um wrapper muito fina que, basicamente, começa o som do motor, expõe sua aplicação para que o som pode ser jogado, e limpa-lo. Além disso, o IrrKlangEngineManager manterá referências a todas as instâncias de RandomSoundEffect, que é uma classe que vamos criar para adicionar ruídos ambientais aleatórios para o nível.

IrrKlangEngineManager.h

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

aspx * /# ifndef IRRKLANGENGINEMANAGER_H_ # definir IRRKLANGENGINEMANAGER_H_ # incluem "lista" # incluem "irrKlang.h" #include "RandomSoundEffect.h" typedef std :: lista RandomSoundEffectList; using namespace irrklang; #define IRRKLANGENGINEMANAGER IrrKlangEngineManager :: Instância () classe IrrKlangEngineManager {public: ~ IrrKlangEngineManager (); estática IrrKlangEngineManager & Instância () {instância IrrKlangEngineManager estático; instância retornar; } Vazio Startup (); Shutdown void (); ISoundEngine * GetSoundEngine () {const motor retorno;} RandomSoundEffect * GetRandomSoundEffect (); protegido: IrrKlangEngineManager (); InitialiseVariables void (); ISoundEngine * motor; RandomSoundEffectList randomSounds;}; # endif

IrrKlangEngineManager.

cpp

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

A função de inicialização inicializa o motor IrrKlang, e mantém um ponteiro para ele

 IrrKlangEngineManager vazio :: Startup () {motor = createIrrKlangDevice ();} < p> A função de desligamento desliga e exclui todos os objetos RandomSoundEffect, eo destrói o motor de som IrrKlang.


 anular IrrKlangEngineManager :: Shutdown () {for (RandomSoundEffectList :: iterator iter = randomSounds.begin () ;! iter = randomSounds.end (); iter ++) {RandomSoundEffect * * = efeito iter; if (efeito-> IsStarted ()) effect>

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.