Hangok C-ben és C++ -ban
Hangok C-ben és C++ -ban
Bizonyára már te is találkoztál olyan programmal,
amely egyszerű hangokkal
figyelmeztetett valamire.(Ilyen lehet például valamilyen üzenetet
kísérő csipogás.)
A számítógép többféle módon adhat ki hangokat,
ugyanis (legalábbis majdnem
minden gépben) van egy kis, beépített hangszoró, illetve lehet egy
hangkártya is, külső
hangszorókkal. A hangkártyák használata egy kicsit bonyolultabb,
ezért
ezekkel majd
valamikor később foglalkozom majd, de ott van a beépített hangszoró,
ami kiválóan
alkalmas arra, hogy egyszerű hangokat, dallamokat lejátszunk vele.
Ennek a használata
nagyon könnyű C és C++ -ban. Van ugyebár nekünk egy sound()
függvényünk a DOS.H -ban,
ami megszólalatatja a hangszorót a paraméterként kapott frekvencián.
A
hang egészen
addig szól, ameddig egy nosound() függvény nem kerül
meghívásra. A DOS.H -ban van
még (sok többi más függvény mellett) egy delay() utasítás,
ami annyi ezredmásodpercet
vár, amennyit paraméterként kapott.(1000 ezredmásodperc=1 másodperc)
Itt van hát egy egyszerű példa, ami egy másodpercig 440 Hz-en
szól:
/* sound1.c - Egy egyszeru pelda a sound()
fuggveny hasznalatara */
#include <dos.h>
void main(void)
{
sound(440);
delay(1000);
nosound();
}
Ha egymás után több hangot szeretnénk lejátszani,
az is megoldható, csak több
sound() utasítást kell egymás után:
/* sound2.c - Egy egyszeru pelda a sound() -al valo dallamlejatszasra
*/
#include <dos.h>
#define WAIT 1000
void main(void)
{
sound(440);
delay(WAIT);
sound(660);
delay(WAIT);
sound(1000);
delay(WAIT);
sound(5000);
delay(WAIT);
nosound();
}
(A #define egy állandó(konstans) értéket
definiál fordítási időben)
Ha csak 'csipogtatni' akarsz, küldj ki egy 'a' -t
a képernyőre!
#include <dos.h>
#include <stdio.h>
void main(void)
{
printf("a");
}
Ez Windows alatt az egy csöngés, DOS alatt egy
beep -elés.
Próbálkozz vele egy kicsit, nagyon jó dallamokat
lehet vele kihozni.
Megjegyzés: Lehet, hogy a hangszoró nem tud túl alacsony hangokat
(általában 10Hz alatt) megszólaltatni.
Hát mostanra ennyi!
A következő alkalommal a billentyűzetkezeléssel fogok foglalkozni.
2000. jĂşnius 13., kedd 00:00