SoloCodigo

Programación Específica => Programación de Videojuegos => Allegro => Mensaje iniciado por: ehguacho en Miércoles 17 de Marzo de 2010, 07:28

Título: Problemas con el teclado
Publicado por: ehguacho en Miércoles 17 de Marzo de 2010, 07:28
hola! saludos a todos y gracias de antemano!
ando buscando ayuda para resolver un problemita. resulta que estoy haciendo mi primer programa en C++ y Allegro (IDE Code::Blocks + Allegro). este mi codigo:
Código: C++
  1. #include <allegro.h>
  2. #include <conio2.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. static inline void TicksCounter();
  7. volatile int ticks,max_ticks;
  8.  
  9. int main()
  10. {
  11.     BITMAP *fichas[12];
  12.     PALETTE paleta;
  13.     int i,x,y;
  14.  
  15.     clrscr();
  16.  
  17.     allegro_init();
  18.     install_timer();
  19.     install_keyboard();
  20.  
  21.     set_color_depth(32);
  22.     if(set_gfx_mode(GFX_AUTODETECT_WINDOWED,640,480,0,0) != 0)
  23.     {
  24.         printf("Error cambiando al modo grafico. Saliendo...");
  25.         allegro_exit();
  26.         exit(1);
  27.     }
  28.  
  29.     fichas[0] = load_bitmap("ficha0.pcx",paleta);
  30.     fichas[1] = load_bitmap("ficha1.pcx",paleta);
  31.     fichas[2] = load_bitmap("ficha2p1.pcx",paleta);
  32.     fichas[3] = load_bitmap("ficha2p2.pcx",paleta);
  33.     fichas[4] = load_bitmap("ficha3p1.pcx",paleta);
  34.     fichas[5] = load_bitmap("ficha3p2.pcx",paleta);
  35.     fichas[6] = load_bitmap("ficha4p1.pcx",paleta);
  36.     fichas[7] = load_bitmap("ficha4p2.pcx",paleta);
  37.     fichas[8] = load_bitmap("ficha5p1.pcx",paleta);
  38.     fichas[9] = load_bitmap("ficha5p2.pcx",paleta);
  39.     fichas[10] = load_bitmap("ficha6p1.pcx",paleta);
  40.     fichas[11] = load_bitmap("ficha6p2.pcx",paleta);
  41.  
  42.     ticks = 0;
  43.     LOCK_VARIABLE(ticks);
  44.     LOCK_FUNCTION(TicksCounter);
  45.     install_int(&TicksCounter,14);
  46.  
  47.     x = y = 10;
  48.     max_ticks = 70;
  49.     draw_sprite(screen,fichas[0],x,y);
  50.     while(!key[KEY_ESC])
  51.     {
  52.         clear_keybuf();
  53.  
  54.         if(ticks - max_ticks > 0)
  55.         {
  56.             rectfill(screen,x,y,x + 22,y + 10,makecol(0,0,0));
  57.             y += 10;
  58.             draw_sprite(screen,fichas[0],x,y);
  59.             ticks = 0;
  60.             printf("asd"); // eso es solo una linea de prueba para ver si entra a este bloque
  61.         }
  62.         if(key[KEY_RIGHT]) x += 22;
  63.     }
  64.  
  65.     allegro_exit();
  66.     return 0;
  67. }
  68. END_OF_MAIN()
  69.  
  70. static inline void TicksCounter()
  71. {
  72.     ticks++;
  73.  
  74.     return;
  75. }
  76. END_OF_FUNCTION(TicksCounter);
  77.  

el problema es que cuando presiono la flecha de navegacion derecha, la ficha que dibuje en pantalla y que deberia moverse a la derecha se me queda completamente clavada. alguien tiene idea de porque puede ser esto?

cualquier ayuda sera bienvenida. saludos!

PD: adjunto el codigo fuente por las dudas...
Título: Re: Problemas con el teclado
Publicado por: ehguacho en Miércoles 17 de Marzo de 2010, 18:41
bueno por las dudas ya lo solucione :D