*   >> Lese Utdanning Artikler >> science >> programming

Å gjøre en 3D-spill med Ogre - Legge til lyd Effects

Last ned demoen og kildekode FOR WINDOWS

Last ned demoen og kildekode for Linux

TILBAKE TIL TUTORIAL INDEX

< p> Ogre har ingen støtte for lyder - det er en grafikk bare gjengivelse. Lydeffekt i spillet vil bli gitt courtesy of IrrKlang lydprosessor, som er laget av gutta som gjorde Irrlicht 3D-motor. IrrKlang er en solid motor, og vi er nødt til å gjøre svært lite for å få den opp og kjører.

Vi vil bryte opp IrrKlang motoren i en klasse samtale IrrKlangEngineManager.

Dette er en svært tynn wrapper som i utgangspunktet starter lyden motor, utsetter det så lydeffekt kan spilles, og renser den opp. I tillegg vil det IrrKlangEngineManager opprettholde referanser til alle forekomster av RandomSoundEffect, som er en klasse som vi vil skape for å legge til tilfeldige omgivelseslyder til nivået.

IrrKlangEngineManager.h

 /* * IrrKlangEngineManager .h * * Forfatter: Matthew Casperson * E-post: [email protected] * Nettside: https://www.brighthub.com/hubfolio/matthew-casperson.

aspx * /# ifndef IRRKLANGENGINEMANAGER_H_ # definere IRRKLANGENGINEMANAGER_H_ # include "liste" # inkludere "irrKlang.h" #include "RandomSoundEffect.h" typedef std :: liste RandomSoundEffectList; bruker namespace irrklang; #define IRRKLANGENGINEMANAGER IrrKlangEngineManager :: Instance () klasse IrrKlangEngineManager {public: ~ IrrKlangEngineManager (); statisk IrrKlangEngineManager & Instance () {statisk IrrKlangEngineManager eksempel; returnere eksempel; } Void Startup (); void Shutdown (); ISoundEngine * GetSoundEngine () const {return motor;} RandomSoundEffect * GetRandomSoundEffect (); beskyttet: IrrKlangEngineManager (); void InitialiseVariables (); ISoundEngine * motor; RandomSoundEffectList randomSounds;}; # endif

IrrKlangEngineManager.

cpp

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

Startup funksjonen initialiserer IrrKlang motor, og holder en peker til det

 void IrrKlangEngineManager :: Startup () {motor = createIrrKlangDevice ();} < p> Shutdown funksjonen slår seg og sletter alle RandomSoundEffect objekter, og den ødelegger IrrKlang lydprosessor.


 annullere IrrKlangEngineManager :: Shutdown () {for (RandomSoundEffectList :: iterator ITER = randomSounds.begin () ;! ITER = randomSounds.end (); ++ ITER) {RandomSoundEffect * effekt = * ITER; if (effekt-> IsStarted ()) effekt->

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.