2011-09-15 9 views
0

게임 웹 페이지에서 작업 중이며 키보드 입력을 캡처, 즉 위, 아래, 왼쪽으로 가져 와서 내 위치 변수에 입력하는 방법을 알아야합니다. 입력 용 HTML 코드에서 텍스트 상자를 사용하고 싶지 않습니다. 나는 이미 내 세계를 그리는 요소를 사용하고 있습니다. 게임을 탭에서 열면 키보드 입력을 따로 떼어 놓고 다양한 브라우저 조작자 키를 사용하여 화면의 특정 지점을 클릭하지 않고도 캡처 할 수 있습니다. 필자는 HTML에 대한 경험이 매우 부족하고 파이썬으로 게임을 HTML로 만드는 방식으로 대답의 원뿔이 필요합니다.자바 스크립트 게임을위한 보이지 않는/예술적으로 즐거운 키보드 입력이 필요합니다.

또한 Timed 루프를 사용하고 있으며 timed 루프 내부에서 캡처 할 수 있도록 onkeypress 이벤트를 가질 수 있어야합니다.

어떤 요소를 사용해야합니까? 요소의 속성은 무엇입니까?

+3

이벤트 처리기를 'window'또는 'document'에 바인딩 할 수 있습니다. –

+1

https://github.com/marquete/kibo를 사용하지 않았지만 제대로 된 것처럼 보입니다 – Joe

+0

JS의 경우와 마찬가지로 응답의 시작은 아마도 "Use jQuery"http://api.jquery.com입니다./keydown / – dtanders

답변

1

루프 내에서 프레스를 구체적으로 캡처하려면 현재 보관 된 키를 어딘가에 저장하고 document.onkeydowndocument.onkeyup을 사용하여 변경해야합니다.

var heldKeys = []; 

document.onkeydown = function(ev) { 
    heldKeys.push(ev.keyCode); 
} 

document.onkeyup = function(ev) { 
    var i = heldKeys.indexOf(ev.keyCode); 
    if (i != -1) { 
     heldKeys.splice(i, 1); 
    } 
} 

이제 루프 내부에서 heldKeys의 내용을 확인하십시오. 루프를 통해 루프를 돌리고 각 키에 대해 작업 할 수 있습니다.

keyCode가 "a" "b"등과 정확히 일치하지 않는다는 것을 기억하면 ASCII 코드가됩니다. 브라우저 호환성 문제가 발생할 수도 있고 그렇지 않을 수도 있습니다.