• Viernes 17 de Mayo de 2024, 06:30

Autor Tema:  c++ allegro sonido  (Leído 1643 veces)

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
c++ allegro sonido
« en: Jueves 21 de Abril de 2011, 05:27 »
0
estoy haciendo un programa

lo que quiero es que si se oprime "Z", "X", o "C" tiene que sonar un sonido wav

pero si oprimo rapido las teclas el sonido empieca a "saltear tecleadas".

este es el codigo fuente:
Código: C++
  1. #include <allegro.h>
  2.  
  3. int main()
  4. {   
  5.     allegro_init();
  6.     install_keyboard();
  7.     install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL);
  8.     SAMPLE *archivo=load_wav("wav.wav");
  9.     int teclaZ=0;
  10.     int teclaX=0;
  11.     int teclaC=0;
  12.     while(!key[KEY_ESC])
  13.     {
  14.         if(key[KEY_Z] && teclaZ==0)//Si se preciona "Z" suena el sonido
  15.         {
  16.             stop_sample(archivo);
  17.             play_sample(archivo, 255, 0, 1000, 0);              
  18.         }
  19.         if(key[KEY_Z]) teclaZ=1;
  20.         else teclaZ=0;
  21.        
  22.         if(key[KEY_X] && teclaX==0)//Si se preciona "X" suena el sonido
  23.         {
  24.             stop_sample(archivo);
  25.             play_sample(archivo, 255, 0, 1000, 0);              
  26.         }
  27.         if(key[KEY_X]) teclaX=1;
  28.         else teclaX=0;
  29.        
  30.         if(key[KEY_C] && teclaC==0)//Si se preciona "C" suena el sonido
  31.         {
  32.             stop_sample(archivo);
  33.             play_sample(archivo, 255, 0, 1000, 0);              
  34.         }
  35.         if(key[KEY_C]) teclaC=1;
  36.         else teclaC=0;
  37.     }
  38.     return 0;
  39. }
  40. END_OF_MAIN();
  41.  
  42.  

a que se debe eso?
tiene solucion?
si uso otra libreria en lugar de allegro puedo evitar este problema?

el archivo wav es un pequeño archivo de solo 244 bytes, que dura unas pocas decimas de segundo