El teclado se puede utilizar de dos formas básicas: por consulta para mover personajes o mediante eventos para responder a pulsaciones de teclas específicas:
En la mayoría de los juegos para computadoras se puede controlar al protagonista del juego usando el teclado.
Pilas hace bastante sencillo esto mediante un objeto llamado “control” que nos va a permitir acceder a las teclas básicas para controlar personajes.
Por ejemplo, para mover un actor hacia izquierda y derecha usando las flechitas del teclado podemos editar el método “actualizar” del actor y colocar estas lineas de código:
actualizar() {
  if (this.control.izquierda) {
    this.x -= 5;
  }
  if (this.control.derecha) {
    this.x += 5;
  }
}El objeto “control” tiene varios atributos que podemos consultar (mediante la palabra “if”) para saber si en ese instante la tecla está pulsada o no.
Estas son otros atributos que tiene el objeto “control”:
| Tecla | Código para consultar la tecla | nombre | 
|---|---|---|
| Flecha izquierda | this.control.izquierda | “izquierda” | 
| Flecha derecha | this.control.derecha | “derecha” | 
| Flecha arriba | this.control.arriba | “arriba” | 
| Flecha abajo | this.control.abajo | “abajo” | 
| Tecla Space | this.control.espacio | “espacio” | 
| Alt | this.control.alt | “alt” | 
| Control | this.control.control | “control” | 
| Shift | this.control.shift | “shift” | 
| Tab | this.control.tab | “tab” | 
| Backspace | this.control.backspace | “backspace” | 
| Meta | this.control.meta | “meta” | 
| Escape | this.control.escape | “escape” | 
| Enter | this.control.enter | “enter” | 
| Tecla a | this.control.tecla_a | “a” | 
| Tecla b | this.control.tecla_b | “b” | 
| Tecla c | this.control.tecla_c | “c” | 
| Tecla d | this.control.tecla_d | “d” | 
| Tecla e | this.control.tecla_e | “e” | 
| Tecla f | this.control.tecla_f | “f” | 
| Tecla g | this.control.tecla_g | “g” | 
| Tecla h | this.control.tecla_h | “h” | 
| Tecla i | this.control.tecla_i | “i” | 
| Tecla j | this.control.tecla_j | “j” | 
| Tecla k | this.control.tecla_k | “k” | 
| Tecla l | this.control.tecla_l | “l” | 
| Tecla m | this.control.tecla_m | “m” | 
| Tecla n | this.control.tecla_n | “n” | 
| Tecla ñ | this.control.tecla_ñ | “ñ” | 
| Tecla o | this.control.tecla_o | “o” | 
| Tecla p | this.control.tecla_p | “p” | 
| Tecla q | this.control.tecla_q | “q” | 
| Tecla r | this.control.tecla_r | “r” | 
| Tecla s | this.control.tecla_s | “s” | 
| Tecla t | this.control.tecla_t | “t” | 
| Tecla u | this.control.tecla_u | “u” | 
| Tecla v | this.control.tecla_v | “v” | 
| Tecla w | this.control.tecla_w | “w” | 
| Tecla x | this.control.tecla_x | “x” | 
| Tecla y | this.control.tecla_y | “y” | 
| Tecla z | this.control.tecla_z | “z” | 
| Tecla 1 | this.control.tecla_1 | “1” | 
| Tecla 2 | this.control.tecla_2 | “2” | 
| Tecla 3 | this.control.tecla_3 | “3” | 
| Tecla 4 | this.control.tecla_4 | “4” | 
| Tecla 5 | this.control.tecla_5 | “5” | 
| Tecla 6 | this.control.tecla_6 | “6” | 
| Tecla 7 | this.control.tecla_7 | “7” | 
| Tecla 8 | this.control.tecla_8 | “8” | 
| Tecla 9 | this.control.tecla_9 | “9” | 
Otra forma de acceder al teclado es mediante eventos, para ejecutar una función justo cuando se pulsa una tecla o se suelta.
Esto es útil por ejemplo en los juegos por turnos o cuando queremos que el teclado funcione sin repetición, imaginá que si hacemos un juego donde el jugador pueda disparar, queremos que pulse y suelte la tecla de disparo muchas veces, no que la deje pulsada y eso dispare automáticamente.
Para capturar eventos de teclado de esta forma tendrías que definir los métodos cuando_pulsa_tecla y cuando_suelta_tecla así:
  cuando_pulsa_tecla(tecla) {
    if (tecla == "espacio") {
      this.disparar();
    }
  }
  cuando_suelta_tecla(tecla) {
    if (tecla == "1") {
      this.decir("Has soltado la tecla 1")
    }
  }Estos métodos están disponibles tanto en las escenas como en los actores. Puedes comprobarlo escribiendo “cuando” en el editor y viendo cómo se sugieren las opciones:
