hola tengo un gran problema con el siguiente codigo:
int i = 0;
while(!key[KEY_ESC])
{
if(key[KEY_UP])
{
while (i <= 1)
{
//if (mover[6][y]==0)
draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
draw_sprite(screen, pacman, (x)*MAX, (y-1)*MAX);
y = y -1 ;
i = 0 ;
i = i + 1 ;
//getchar();
system ("pause");
break;
}
}
if(key[KEY_DOWN])
{
while (i <= 1)
{
draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
draw_sprite(screen, pacman, (x)*MAX, (y+1)*MAX);
y = y +1 ;
i = 0 ;
i = i + 1 ;
//getchar();
system ("pause");
break;
}
}
if(key[KEY_RIGHT])
{
while (i <= 1)
{
draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
draw_sprite(screen, pacman, (x+1)*MAX, (y)*MAX);
x = x + 1 ;
i = 0 ;
i = i + 1 ;
//getchar();
system ("pause");
break;
}
}
if(key[KEY_LEFT])
{
while (i <= 1)
{
draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
draw_sprite(screen, pacman, (x-1)*MAX, (y)*MAX);
x = x - 1 ;
i = 0 ;
i = i + 1 ;
//getchar();
system ("pause");
break;
}
}
}
el proble consiste en que tengo una matriz y tengo que hacer que se mueva una imagen por coordenadas que varian dependiendo que se ingrese por el teclado
por ejemplo si el usuario ingresa la tecla arriba la coordenada en y disminuye en uno
o si ingresa la tecla derecha la coordena en x disminuye en uno ...etc...
el problema es que como esta echo en allegro.h cuando yo le ingreso una tecla no se por que se muve tan deliveradamente, y entonces implemente el codigo anterior que limita el movimiento en uno por uno, pero no quiero que aparezca la ventana de systen("pause"), quisiera saber si hay otra forma de realizar este tipo de movimiento con o sin la libreria allegro pero que a la hora de compilar sea compatible el codigo con la libreria.

gracias