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

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

Shutdown (); slette effekt; } RandomSounds.clear ();
 Motor-> dråpe (); InitialiseVariables ();} 

Akkurat som WeaponDatabase inneholder IrrKlangEngineManager en samling av gjenstander, RandomSoundEffect objekter i denne saken, og vil forsøke å returnere en ubrukt en fra bassenget når et objekt er forespurt gjennom GetRandomSoundEffect funksjon, eller vil opprette en ny RandomSoundEffect, legge det til bassenget, og deretter returnere den

 RandomSoundEffect * IrrKlangEngineManager :: GetRandomSoundEffect () {for (RandomSoundEffectList :: const_iterator ITER = randomSounds.

begin ();. ITER = randomSounds!. end (); ++ ITER) {RandomSoundEffect * effekt = * ITER; if (! effekt-> IsStarted ()) returnerer effekt; } RandomSoundEffect * effekt = new RandomSoundEffect (); randomSounds.push_back (effekt); returnere effekt;}

For å spille en lydeffekt vi kaller play2D funksjonen fra IrrKlang lydprosessor. The Bullet klassen bruker denne funksjonen til å spille av en lyd effekt når en kule er avfyrt

 float Bullet :: Startup (konst Vector3 & stilling) {Weapon :: Startup (posisjon).; this-> billboardSet = GAMELEVEL.

GetSceneManager () -> createBillboardSet (Utilities :: GetUniqueName ("BillboardSet"), 1); this-> billboardSet-> setMaterialName ("Bullet"); this-> billboard = billboardSet-> createBillboard (Vector3 :: ZERO, farge); this-> weaponSceneNode-> attachObject (billboardSet); this-> weaponSceneNode-> skala (BULLET_SCALE, BULLET_SCALE, BULLET_SCALE); IRRKLANGENGINEMANAGER.GetSoundEngine () -> play2D (BULLET_SOUNDFX); returnere timeBetweenShots;}

Som nevnt tidligere, RandomSoundEffect klassen brukes til å spille av lydeffektene på tilfeldige intervaller gjennom nivået.

Det fungerer ved å sitte i bakgrunnen, og hvert sekund vil det tilfeldig avgjøre om det bør spille en lydeffekt, basert på en frekvens som er levert til oppstartsfunksjonen. En frekvens på 10 betyr at hvert sekund er det en 1 i 10 sjanse lydeffekten vil bli spilt

RandomSoundEffect.h

 /* * RandomSoundEffect.h * * Forfatter:. Matthew Casperson * E-post: [email protected] * Nettside: https://www.brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef RANDOMSOUNDEFFECT_H_ # definere RANDOMSOUNDEFFECT_H_ # include "PersistentFrameListener.

h" class RandomSoundEffect: public PersistentFrameListener {public: RandomSoundEffect (); ~ RandomSoundEffect (); ugyldig Startup (s

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