martes, 31 de mayo de 2016

bgt clase 13 - manejo de teclado



  Manejo de teclado

  Es importante en el juego controlar las teclas pulsadas, de esa forma empezamos a dar interacción. Según lo visto en la anterior clase del bucle hoy veremos cómo utilizarlo y controlar que tecla se pulsa. Para ello utilizaremos la función key_pressed(). ésta función verifica si la tecla pasada por parámetro se pulsa y nos retorna un booleano (true o false) si está o no pulsada. Vamos a ver un ejemplo:

key_pressed(KEY_F4)

  Valida si está pulsada la tecla "f4". Por parámetro se debe pasar el código de tecla que queremos verificar, ya en otro post pondré el listado completo de teclas. En este caso comprueba, si está pulsado f4 retorna true, si no retorna false. Y con el resultado podemos agregar un if y darle funciones.
  Vamos a ver un ejemplo completo:


void main()
{
show_game_window("Test demo");
alert("demo", "pulsa f4 para cerrar esta ventana");

while(true) {

if(key_pressed(KEY_F4)) {
alert("demo", "adios");
exit();
}

wait(5);
}
}



  Tenemos aquí la función main (principal) y en ella le dimos un título a nuestra aplicación: "test demo".
Luego está el alert que avisa que pulsando f4 se cierra el juego.
Activamos un bucle while:
while(true) que significa: bucle siempre activo. Dentro de el tiene un condicional que verifica si pulsa la tecla f4 saluda y cierra el juego. Si pulsas cualquier otra tecla no hará nada. Y por último tenemos un wait(5) que es una buena práctica, cuando tenemos un bucle infinito: un siclo que se repite infinitamente ocupa mucho procesador de las computadoras, por lo tanto es bueno limitarlo a que no esté corriendo siempre si no que tenga un descanso, en este caso le decimos poné una pausa de 5 ms (milisegundos) con esto ya no ocupamos tanto procesador y estamos constantemente revisando. También podríamos ampliar un poco mas esa pausa a 100 o a 150 ms y no se notaría el retardo, En cambio si lo subimos a 800 o 1500 si lo notaríamos, veremos que al pulsar f4 y hasta que responda el programa hay que esperar un poco, pero con retardo tan pequeños no se nota.

Tarea:
  Agregar al código que vimos recién un mensaje diferente para cuando pulse f2 o f6 pero que no se cierre el programa, solo muestre el mensaje. Que solo permita cerrar con el f4.
Hasta la próxima clase.

No hay comentarios: