Hola a todos, soy nuevo usando Bennu y me esta cayendo bastante bien, felicitaciones.
Bueno tengo una duda piadosa, a la hora de chequear los eventos del teclado, como el de un cursor.
Cuando chequeamos si key(_up) se presionó y hacemos el movimiento que debe hacer el cursor, lo hace todo seguido, no hace una pausa, a ver si me explico.
Queriendo hacer que por cada vez que se presione key(_up) haga cursor.y = cursor.y - 20;
Sabiendo que es un cursor, la idea es que se apriete la tecla de arriba, y espere a que vuelvas a teclearla de nuevo para moverse otros 20px en Y.
Dejandolo asi, al dejar un momento bastante corto apretada la tecla, hace todo de recorrido
Probe con frame(2000); por ejemplo, para que se demore aunque sea cuando se presione la tecla y no haga todo de corrido, funciona.
Pero mi pregunta es, es la manera mas eficiente y correcta de hacerlo?
Gracias por leer!
Welcome to your DOOM!
(http://farm1.static.flickr.com/172/375444707_310f142f46.jpg?v=0)
No me queda claro si quieres hacer que solo se mueve cada vez que pulses (que llamaré BLOQUEO), o también dejándolo pulsado pero más lento (que llamaré RALENTIZACIÓN).
La primera forma de BLOQUEO te puede ser útil, pero también puede darte quebraderos de cabeza si haces cosas complicadas:
[code language="bennu"]
LOOP
...
IF(key(_up))
y-=20;
WHILE (key_up)) // Mientras no la sueltes
FRAME;
END
END
....
FRAME;
END
[/code]
Y la segunda opción de BLOQUEO (posiblemente yo haría esta, pese a tener una variable más)
[code language="bennu"]
PRIVATE
int pulsando_arriba;
BEGIN
...
pulsando_arriba = 0;
LOOP
...
IF(key(_up))
IF(pulsando_arriba == 0)
pulsando_arriba = 1;
y -= 20;
END
ELSE
pulsando_arriba = 0;
END
...
FRAME;
END
[/code]
Y también te dejo una forma para la opción de RALENTIZACIÓN (cambia el valor 50 por el que te convenga):
[code language="bennu"]
PRIVATE
int contador_arriba;
BEGIN
contador_arriba = 50;
LOOP
IF(key(_up) AND contador_arriba == 50)
contador_arriba=0;
y-=20;
END
contador_arriba++;
IF(contador_arriba==51) // No pasarse de 50
contador_arriba = 50;
END
FRAME;
END
END
[/code]
Justo lo que buscaba.
Muchas gracias grisendo! ;D
bienvenido!
Gracias Splinter! :D
MAS, MAS. Al fondo hay sitio. ;D
Bienvenido.
bienvenido a estos lares FPintaluba.
Gracias! :D