next up previous
Next: Dialógy alebo "Stlačte OK!" Up: grafika Previous: Klávesnica alebo "Dajako to

Zvukové efekty alebo "Chcelo by to výbuch."

Málo hier sa dnes už zaobíde bez zvukov. Postavy hovoria, výbuchy vybuchujú, spoza dvier je počuť tajuplné kroky a na pozadí hrá podmanivá hudba. Zvuky hre dodávajú atmosféru a zážitok z ozvučenej hry je oveľa väčší než z nemého "filmu".

Zvuky ku hre je treba najprv získať. Nahráte ich v profesionálnom štúdiu alebo stokorunovým mikrofónom alebo stiahnete z internetu. Formátov, v ktorých sa dajú uložiť je nepreberné množstvo, Allegro však vie pracovať iba s dvoma formátmi. Pre mono nahrávky používa formát .voc a pre stereo formát .wav

Keď takýto zvuk chceme natiahnuť do Allegra, buď to spravíme cez dátové súbory, ktoré boli popísané v 10. lekcii, alebo si deklarujeme smerník na štruktúru SAMPLE a zvuk načítame do pamäte s pomocou funkcie load_sample ako sme to ukázali v ukážkovom príklade.

Ak chceme používať zvukový podsystém, ako všetko v Allegre ho musíme inicializovať. Na to slúži funkcia install_sound, ktorá má tri parametre, z ktorých je momentálne zaujímavý iba prvý (druhý sa týka nastavenia prehrávania MIDI súborov a tretí je tam vyložene z historických dôvodov). Takže zvuk nainštalujete príkazom install_sound(DIGI_AUTODETECT, MIDI_NONE, NULL)

Keď chceme nejaký zvuk zahrať, slúži na to funkcia play_sample. Táto má parametrov päť a tentokrát sú všetky dôležité. Prvý parameter hovorí, ktorý to zvuk treba zahrať. Druhý parameter je číslo od 0 do 255, ktoré hovorí, ako hlasno sa to má zahrať. Tretí parameter hovorí, z ktorej strany bude zvuk počuť. 255 znamená pravý reproduktor, 0 znamená ľavý, ak to chceme mať v strede, treba použiť 128. Štvrtý parameter je o tom, ako vysoko to chceme zahrať. Hodnota 1000 znamená "rovnako vysoko, ako to bolo nahraté", 2000 je dvojnásobná frekvencia, 500 polovičná...Posledný parameter je buď TRUE alebo FALSE. Ak je FALSE, zvuk sa zahrá raz a hotovo. Ak je ale TRUE, zvuk sa opakuje stále dookola až kým nezavoláme funkciu stop_sample so smerníkom na zvuk, alebo kým neskončí program. Toto sa používa hlavne vtedy, keď chcete pustiť do pozadia nejakú hudbu, ktorú necháte hrať stále dokola, kým neskončí daný level.

Takže ukážkový program môže vyzerať takto:

  1   #include "allegro.h"
  2
  3   int main()
  4   {
  5      SAMPLE *vybuch;
  6
  7      allegro_init();
  8      install_keyboard(); 
  9      install_timer();
 10      install_sound(DIGI_AUTODETECT, MIDI_NONE, NULL);
 11
 12      vybuch = load_sample("bum.wav");
 13   
 14      set_gfx_mode(GFX_SAFE, 320, 200, 0, 0);   
 15      play_sample(vybuch, 255, 128, 1000, TRUE);
 16   
 17      readkey();
 18      stop_sample(vybuch);
 19      destroy_sample(vybuch);
 20   }
 21   END_OF_MAIN()
Nič nečakaného sa tam nedeje. Na riadku 10 inicializujeme zvuk, na riadku 12 načítame obsah súboru bum.wav do pamäte a do smerníka vybuch vložíme, kde ten zvuk v pamäti je. Na riadku 15 to necháme hrať stále dookola až kúm sa niečo na klávesnici nestlačí. Potom ten randál vypneme a vymažeme z pamäte a všetko skončí.



Úloha č.1 Pochopte a vyskúšajte (na počítači so zvukovkou, požičajte si slúchadlá).

Úloha č.2 Experimentujte s parametrami funkcie play_sample. Spustite ju päťkrát za sebou tak, aby sa zvuk postupne presúval zprava doľava, spustite zvuk s dvojnásobnou a polovičnou frekvenciou a vôbec, skúšajte, čo to dá.


next up previous
Next: Dialógy alebo "Stlačte OK!" Up: grafika Previous: Klávesnica alebo "Dajako to
Anino Belan
anino(at)smnd.sk