Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/07/2011, 17:50
Avatar de uziel5
uziel5
 
Fecha de Ingreso: mayo-2011
Mensajes: 23
Antigüedad: 12 años, 11 meses
Puntos: 1
Pregunta Problema con eventos

Hola, pues verán estoy queriendo hacer que un personaje se mueva dentro de un canvas, y quiero que si se presiona la tecla derecha me llame a la función mirar derecha, pero si mantengo pulsada esa misma tecla llame al método caminarDerecha la cual contiene una animación.

El evento de presionar una tecla lo tengo de la siguiente manera:

Código:
document.onkeydown = pulsarTecla;

function pulsarTecla(){
	var tecla = event.keyCode;
	
	switch(tecla){
		case 37:
			ash.mirarIzquierda();
			break;
		case 38:
			ash.mirarArriba();
			break;
		case 39:
			ash.mirarDerecha();
			break;
		case 40:
			ash.mirarAbajo();
			break;
	}
}
Tengo entendido que el evento onkeydown es solo si se presiona una tecla y no si se deja pulsada (algo que me parece extraño por que me doy cuenta de que hace las dos funciones).

También he hecho según yo un código para cuando se mantenga la tecla pulsada:

Código:
document.onkeypress = mantenerTecla;

function mantenerTecla(){
	var tecla = event.keyCode;
	
	switch(tecla){
		case 37:
			ash.caminarIzquierda();
			ash.lienzoX -= 5;
			break;
		case 38:
			ash.caminarArriba();
			ash.lienzoY -= 5;
			break;
		case 39:
			ash.caminarDerecha();
			ash.lienzoX += 5;
			break;
		case 40:
			ash.caminarAbajo();
			ash.lienzoY += 5;
			break;
	}
}
Pero el código no funciona, es mas, ni siquiera entra a la función.

Ese es mi problema, espero que me puedan ayudar, si necesitan cualquier dato yo se los doy.

Un saludo y gracias por la atención.