var keyState = [];
const KEY_UP = 38;
const KEY_DOWN = 40;
const KEY_W = 87;
const KEY_S = 83;
const keyEventLogger = function (e) { keyState[e.keyCode] = e.type =='keydown';}
window.addEventListener("keydown", keyEventLogger);
window.addEventListener("keyup", keyEventLogger);
위는 제가 인정할 수없는 코드입니다. 여기에있는 사용자가 플레이어의 움직임에 대해 묻는 사람에게 응답하여 게시했습니다. 대다수를 이해하는 동안 (나는 생각합니다), 특히 한 줄을 이해하지 못합니다. 에서가 내가 수집 무엇 :약간의 설명은 어긋나지 않을 것입니다 :-)
var keyState = [];
생성하고 빈 배열이 키 상태라고
const KEY_UP = 38;
const KEY_DOWN = 40;
const KEY_W = 87;
const KEY_S = 83;
이는이 다음이다 그들은 키 코드는 특정 키
const keyEventLogger = function (e) { keyState[e.keyCode] = e.type =='keydown';}
을 위해 무엇인지 정의 varibles 있습니다 나를 위해 혼란스러운 선. 그것은 keyeventlogger 라 불리는 변수를 만든 다음 그것을 통과하는 함수와 동일합니다. 그런 다음이 함수는 e의 키 코드를 배열에 추가하고 e.type (그게 무엇이든간에)과 같게 만들고 그 값을 아래의 이벤트 수신기 인 keydown으로 설정합니다. 누군가가 자바 스크립트에서
많은 제임스
펜던트 :'const' 키워드는 정의가 아닌 상수를 정의합니다! –
정말'var keyState = {}'이어야합니다. – Bergi
아마도이 함수는 function keyEventLogger (e) {function isPressed = e.type == 'keydown'과 기능적으로 동일하다는 것을 알고있을 것입니다. keyState [e.keyCode] = isPressed; }'도움이 될까요? 또한'console.log (e)'를 추가하여 어떤 이벤트를 얻고 있는지 그리고 그 속성이 무엇인지 확인하십시오. – Bergi