Bueno ya he probado el código.
Al probar el código que me haz dado me ha marcado error, me decía que había problema en which de undefined y para arreglarlo he tenido que colocar la etiqueta:
Código:
<body onkeypress="mantenerTecla(event)" onkeydown="pulsarTecla(event)">
Esta antes no la tenía puesta y llamaba al evento desde el javascript con el siguiente código:
Código:
document.onkeypress = mantenerTecla;
También me he dado cuenta que es inútil llamar a los eventos onkeypress y onkeydown al mismo tiempo, por que si presiono un instante una tecla se activan los eventos onkeypress y onkeydown, y lo mismo va si mantengo pulsada la tecla.
Mi idea era que si se presionó una tecla esta me llamara a una función y si se mantenía pulsada llamara a otra.
Para dejarlo mas claro si se pulsaba un instante una tecla quería que mi personaje volteara a un lado y si mantenía la tecla pulsada volteara a un lado y activara una función de animación de movimiento.
Otra cosa importante, por alguna razón el evento onkeypress no responde a los botones izquierda, derecha, abajo, y arriba, además de que los códigos de los botones del teclado son diferentes para onkeypress y onkeydown.