Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/02/2015, 13:33
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Simplificar esta operación

Es mejor controlar el teclado de esta otra manera:

http://jsfiddle.net/marlanga/kyoody4p/

Código Javascript:
Ver original
  1. var Teclado = {
  2.     CURSOR_ARRIBA : false,
  3.     CURSOR_ABAJO : false,
  4.     CURSOR_DERECHA : false,
  5.     CURSOR_IZQUIERDA : false,
  6.     ESPACIO : false,
  7.     establecer : function ( keyCode, booleano ) {
  8.         switch( keyCode ) {
  9.                 case 32:
  10.                     Teclado.ESPACIO = booleano;
  11.                     break;
  12.                 case 37:
  13.                     Teclado.CURSOR_IZQUIERDA = booleano;
  14.                     break;
  15.                 case 38:
  16.                     Teclado.CURSOR_ARRIBA = booleano;
  17.                     break;
  18.                 case 39:
  19.                     Teclado.CURSOR_DERECHA = booleano;
  20.                     break;
  21.                 case 40:
  22.                     Teclado.CURSOR_ABAJO = booleano;
  23.                     break;
  24.             }
  25.     },
  26.     cargar : function( element ) {
  27.         element.onkeydown = function (e){
  28.             Teclado.establecer( e.keyCode, true );
  29.         };
  30.         element.onkeyup = function (e){
  31.             Teclado.establecer( e.keyCode, false );
  32.         };
  33.     }
  34. };
  35. Teclado.cargar(document.body);

A ésto se le conoce como sistema de "notificaciones". Yo guardo en un objeto Teclado que una tecla concreta está pulsada. El resto del código puede mirar ese objeto para comprobar si en esa vuelta del "bucle" se está pulsando una tecla dada. Esto, junto al tiempo "delta" es la base de todo videojuego simple.

En mi firma hay un enlace a un viejo blog mío donde hacía (y quiero retomar algún día) tutoriales de pequeños videojuegos, y en varios de ellos se puede ver cómo hago uso del teclado.