delete - Keylistener en Javascript
js shortcut (5)
Estoy buscando un KeyListener
para un juego que estoy desarrollando en JavaScript. No tengo idea de cómo funcionaría esto en código real, pero sería algo como esto:
if(keyPress == upKey)
{
playerSpriteX += 10;
}
else if(keyPress == downKey)
{
playerSpriteY -= 10;
}
etc ...
Lo busqué, y a Google se le ocurrieron cosas que involucraban a AJAX que aún no entiendo. ¿Hay una función incorporada en JavaScript que hace esto?
¿Revisaste la pequeña biblioteca de Mousetrap ?
Mousetrap es una biblioteca simple para manejar atajos de teclado en JavaScript.
El codigo es
document.addEventListener(''keydown'', function(event){
alert(event.keyCode);
} );
Esto devuelve el código ASCII de la clave. Si necesita la representación clave, use event.key (Esto devolverá ''a'', ''o'', ''Alt'' ...)
Una comparación un poco más legible se realiza mediante la conversión de event.key
a mayúsculas (utilicé onkeyup - necesitaba que el evento se event.key
que se event.key
cada tecla):
window.onkeyup = function(event) {
let key = event.key.toUpperCase();
if ( key == ''W'' ) {
// ''W'' key is pressed
} else if ( key == ''D'' ) {
// ''D'' key is pressed
}
}
Cada clave tiene su propio código, elimínelo al generar el valor de la variable "clave" (por ejemplo, para la tecla de flecha arriba será ''ARROWUP'' - (convertido en mayúsculas))
Si no desea que el evento sea continuo (si desea que el usuario tenga que liberar la tecla cada vez), cambie onkeydown
a onkeyup
window.onkeydown = function (e) {
var code = e.keyCode ? e.keyCode : e.which;
if (code === 38) { //up key
alert(''up'');
} else if (code === 40) { //down key
alert(''down'');
}
};
window.onkeyup = function(e) {
var key = e.keyCode ? e.keyCode : e.which;
if (key == 38) {
playerSpriteX += 10;
}else if (key == 40) {
playerSpriteX -= 10;
}
}