Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2011, 21:23
Alfonso1
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 14 años, 3 meses
Puntos: 0
c++ allegro sonido

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++:
Ver original
  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();

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

Última edición por Alfonso1; 20/04/2011 a las 21:33