*   >> Lezen Onderwijs artikelen >> science >> programming

Het maken van een 3D-spel met Ogre - Het toevoegen van geluid Effects

Download de demo en de broncode voor Windows

Download de demo en de broncode voor Linux

Terug naar de tutorial INDEX

< p> Ogre heeft geen ondersteuning voor geluid - het is een grafische alleen rendering engine. Geluidseffect in het spel zal worden verstrekt met dank aan de IrrKlang sound engine, die is gemaakt door de jongens die de Irrlicht 3D-engine gemaakt. IrrKlang is een solide motor, en we gaan te hebben om weinig te doen om het te krijgen up and running.

We zullen wikkel het IrrKlang motor in een klasse oproep IrrKlangEngineManager.

Dit is een zeer dunne wrapper die in principe begint het geluid motor, onthult het zo geluidseffect gespeeld kan worden, en reinigt het op. Daarnaast zal de IrrKlangEngineManager behouden verwijzingen naar alle gevallen van RandomSoundEffect, dat is een klasse die we zullen maken om willekeurige ambient geluiden toevoegen aan het niveau.

IrrKlangEngineManager.h

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

aspx * /# ifndef IRRKLANGENGINEMANAGER_H_ # definiëren IRRKLANGENGINEMANAGER_H_ # include "lijst" # omvatten "irrKlang.h" #include "RandomSoundEffect.h" typedef std :: lijst RandomSoundEffectList; using namespace irrklang; #define IRRKLANGENGINEMANAGER IrrKlangEngineManager :: aanleg () klasse IrrKlangEngineManager {public: ~ IrrKlangEngineManager (); statische IrrKlangEngineManager & aanleg () {statische IrrKlangEngineManager bijvoorbeeld; Zo keren; } Leegte Startup (); leegte Shutdown (); ISoundEngine * GetSoundEngine () const {return motor;} RandomSoundEffect * GetRandomSoundEffect (); beschermd: IrrKlangEngineManager (); leegte InitialiseVariables (); ISoundEngine * motor; RandomSoundEffectList randomSounds;} # endif

IrrKlangEngineManager.

cpp

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

De Startup-functie initialiseert de IrrKlang motor, en houdt een verwijzing naar deze

 leegte IrrKlangEngineManager :: Startup () {motor = createIrrKlangDevice ();} < p> De Shutdown-functie uitgeschakeld en verwijdert alle RandomSoundEffect objecten en het vernietigt de IrrKlang klankbron.


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

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.