Pascal/Turbo Pascal - Ayuda con keypressed

 
Vista:

Ayuda con keypressed

Publicado por Matias (1 intervención) el 23/10/2006 16:38:45
weno yo estoy haciendo un pinball para el colegio..y esta todo biem hasta que llegue a q la bola se mueva independientemente q la barra q mueve el usuario..entonces no puede haber un readkay porq sino la bola se moveria cada ves q mueva la barra..espero haber sido claro :P... bueno yo pensaba en un keypressed...osea asigandole a una variable..pero no me lee la tecla..si alguien me puede ayudar con algo gracias..chaus
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con keypressed

Publicado por Carlos Guimaraenz (265 intervenciones) el 23/10/2006 23:57:53
Hola Matías! Lo que puedes hacer es lo siguiente:
suponte que tienes un repeat con diferentes instrucciones, yo sólo pondré las necesarias:

repeat
if ( keypressed ) then
begin
case readkey of
'z' : {acciones para la tecla Z}
'm' : {acciones para la tecla M}
's' : salir:=True;
end;
end;
until( salir );

De esta manera, sólo leerá el valor ascii de una tecla cuando ésta sea pulsada, y así la bola se moverá independientemente.

Te mando un abrazo y espero ver el pinball algún día!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con keypressed

Publicado por Diego Romero (996 intervenciones) el 24/10/2006 02:49:03
Ampliando la explicación de Carlos (la cual está muy bien) te diré que me parece que tienes una confusión acerca de lo que realmente hace KeyPressed; ésta función solamente detecta si se ha presionado una tecla, no te dice qué tecla ha sido presionada; y KeyPressed no detiene el programa esperando por una tecla, en realidad cuando la invoca se limita a verificar que el buffer de teclado contiene algo, si es así la función devuelve true, caso contrario false.

Por otro lado Readkey comienza haciendo lo mismo, verifica si hay algo en el buffer de teclado y si no hay espera hasta que aparezca algo (lo que equivale a esperar a que el usuario presione una tecla), pero si al momento de invocar esta función hay algo en el buffer entonces no espera, simplemente toma el valor de la tecla presionada y la devuelve al programa.

Combinando estas dos cosas obtienes el código que ha escrito Carlos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar