2013-06-09 9 views
8

Sto cercando un ascoltatore chiave per un gioco che sto sviluppando in JavaScript. Non ho idea di come funzionerebbe nel codice reale, ma sarebbe qualcosa del genere.Keylistener in Javascript

if(keyPress=upKey) 
    { 
     playerSpriteX+=10; 

    } 
    else if(keyPress=downKey) 
    { 
     playerSpriteY-=10; 

    } 

ect ...

ho cercato in su, e Google si avvicinò con le cose che hanno coinvolto AJAX, che non capisco ancora. C'è una funzione integrata in javascript che fa questo?

+11

Java è Javascript come l'auto è tappare. – SLaks

+0

@SLaks: car & pet == molti capelli e auto – KarolDepka

risposta

27
window.onkeyup = function(e) { 
    var key = e.keyCode ? e.keyCode : e.which; 

    if (key == 38) { 
     playerSpriteX += 10; 
    }else if (key == 40) { 
     playerSpriteX -= 10; 
    } 
} 

FIDDLE

+1

Questo era esattamente quello che stavo cercando! –

5

JSFIDDLE DEMO

Se non si desidera che l'evento sia continuo (se si desidera che l'utente deve rilasciare il tasto ogni volta), cambiare onkeydown-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'); 
    } 
}; 
2

Hai controllato la piccola libreria Mousetrap?

Mousetrap è una semplice libreria per la gestione delle scorciatoie da tastiera in JavaScript.

3

In editor di codice ghiaccio gamingjs il codice è

document.addEventListener('keydown', function(event){ 
    alert(event.keycode) 
} 

questo ritorno il codice ASCII della chiave. Se hai bisogno della rappresentazione della chiave, usa event.key (Questo restituirà 'a', 'o', 'Alt' ...)