2013-06-09 26 views
8

Tôi đang tìm một người nghe chính cho một trò chơi mà tôi đang phát triển bằng JavaScript. Tôi không biết làm thế nào điều này sẽ làm việc trong mã thực nhưng nó sẽ là somthing như thế này.Keylistener trong Javascript

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

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

    } 

ect ...

Tôi đã tìm kiếm nó lên, và Google đã đưa ra những điều mà tham gia AJAX mà tôi không hiểu được nêu ra. Có một chức năng được xây dựng trong javascript mà thực hiện điều này?

+11

Java là Javascript khi ô tô là thảm. – SLaks

+0

@SLaks: xe hơi & vật nuôi == nhiều tóc và xe hơi – KarolDepka

Trả lời

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

Đây chính xác là những gì tôi đang tìm kiếm! –

5

JSFIDDLE DEMO

Nếu bạn không muốn sự kiện này là liên tục (nếu bạn muốn người dùng phải nhả mỗi lần key), thay đổi 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

Bạn đã kiểm tra thư viện Mousetrap nhỏ chưa?

Bẫy chuột là một thư viện đơn giản để xử lý các phím tắt trong JavaScript.

3

Trong trình soạn thảo code băng bởi gamingjs mã là

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

này trả về mã ascii của khóa. Nếu bạn cần biểu diễn chìa khóa, hãy sử dụng event.key (Điều này sẽ trả về 'a', 'o', 'Alt' ...)