Detectar teclas xa juego
Publicado por Bleim (1 intervención) el 08/02/2002 17:31:41
Buenass
Estoy tratando de hacer un juego, sin grandes ambiciones, ya que estoy dando mis primeros pasos en turbo C 3.0. El caso es que quiero mover un grafico por la pantalla y para ello utilizo kbhit() y getche(). El problema es la lentitud de respuesta. Cuando pulso una tecla por primera vez o cuando la suelto y pulso otra rápidamente, el grafico de la pantalla se detiene un instante. Después va bien. No se que es lo que pasa. Ahí va el codigo:
x=y=100; //posicion inicial
while(1)
{
while(!kbhit()){
//rutina que dibuja un grafico
}
ch=getch();
if(ch== TECLAS DE MOVIMIETO) x++; o x--;
}
Alguno dirá que no utilice las bgi, pero no lo hago, pinto el gráfico mediante pantalla virtual. No es problema del dibujo, si no de la rutina, creo. He probado ha sustituir kbhit y getch por boskey; funciona pero sigue funcionando mal. También he probado a poner la rutina de dibujo en otro sitio, pero no parece funcionar.
He buscado por el foro pero no encuentro una respuesta. Haber si alguien puede ayudarme, gracias.
Estoy tratando de hacer un juego, sin grandes ambiciones, ya que estoy dando mis primeros pasos en turbo C 3.0. El caso es que quiero mover un grafico por la pantalla y para ello utilizo kbhit() y getche(). El problema es la lentitud de respuesta. Cuando pulso una tecla por primera vez o cuando la suelto y pulso otra rápidamente, el grafico de la pantalla se detiene un instante. Después va bien. No se que es lo que pasa. Ahí va el codigo:
x=y=100; //posicion inicial
while(1)
{
while(!kbhit()){
//rutina que dibuja un grafico
}
ch=getch();
if(ch== TECLAS DE MOVIMIETO) x++; o x--;
}
Alguno dirá que no utilice las bgi, pero no lo hago, pinto el gráfico mediante pantalla virtual. No es problema del dibujo, si no de la rutina, creo. He probado ha sustituir kbhit y getch por boskey; funciona pero sigue funcionando mal. También he probado a poner la rutina de dibujo en otro sitio, pero no parece funcionar.
He buscado por el foro pero no encuentro una respuesta. Haber si alguien puede ayudarme, gracias.
Valora esta pregunta


0