*   >> Læs Uddannelse artikler >> science >> programming

Realiseringen af ​​et 3D-spil med Ogre - Tilføjelse lydeffekter

Download demoen og kildekode FOR WINDOWS

Download demoen og kildekode til Linux

TILBAGE TIL tutorial INDEX

Ogre har ingen støtte til lyde - det er en grafik kun rendering engine. Lyd effekt i spillet vil blive ydet høflighed af IrrKlang lydprocessor, som er lavet af de fyre, der gjorde Irrlicht 3D-motor. IrrKlang er en solid motor, og vi bliver nødt til at gøre meget lidt for at få det op at køre.

Vi vil ombryde op IrrKlang motor i en klasse opkald IrrKlangEngineManager.

Dette er en meget tynd omslag, der dybest set starter lyden motor, udsætter det så lydeffekt kan afspilles, og renser det. Desuden vil IrrKlangEngineManager opretholde referencer til alle forekomster af RandomSoundEffect, som er en klasse, som vi vil skabe for at tilføje tilfældige lyde i omgivelserne til det niveau.

IrrKlangEngineManager.h

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

aspx * /# ifndef IRRKLANGENGINEMANAGER_H_ # definerer IRRKLANGENGINEMANAGER_H_ # omfatte "liste" # omfatte "irrKlang.h" # include "RandomSoundEffect.h" typedef std :: liste RandomSoundEffectList, anvendelse namespace irrklang; # define IRRKLANGENGINEMANAGER IrrKlangEngineManager :: Instans () klasse IrrKlangEngineManager {public: ~ IrrKlangEngineManager (); statisk IrrKlangEngineManager & Instans () {statisk IrrKlangEngineManager instans; returnere eksempel; } Void Startup (); void Shutdown (); ISoundEngine * GetSoundEngine () const {tilbagevenden motor;} RandomSoundEffect * GetRandomSoundEffect (); beskyttet: IrrKlangEngineManager (); void InitialiseVariables (); ISoundEngine * motor; RandomSoundEffectList randomSounds;}; # endif

IrrKlangEngineManager.

cpp

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

Start-funktionen initialiserer IrrKlang motor, og holder en pointer til det

 ugyldig IrrKlangEngineManager :: Startup () {motor = createIrrKlangDevice ();} < p> Shutdown funktionen lukker ned og sletter alle de RandomSoundEffect objekter, og ødelægger IrrKlang lyd motor.


 ugyldiggøre IrrKlangEngineManager :: Shutdown () {for (RandomSoundEffectList :: iterator iter = randomSounds.begin () ;! iter = randomSounds.end (); ++ ITER) {RandomSoundEffect * effekt = * iter; hvis (virkning-> IsStarted ()) virkning->

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.