Also arbeite ich an einem Spiel, das Benutzereingaben akzeptiert (nach oben, nach links, nach rechts weisende Pfeiltasten). Um dies zu tun, werde ich einen Ereignis-Listener hinzufügen, der überprüft, wenn der Benutzer die Tasten drückt. Ich habe es auf die folgende Weise eingerichtet:eventListener kann keyCode nicht lesen
function gameStart(){
//Generates four random numbers on board
for(gameStart_i = 0; gameStart_i < 4; gameStart_i++){
generateNumber();
}
document.getElementById("start_button").innerHTML = "Reset Game";
document.getElementById("start_button").setAttribute('onclick', 'reset()');
document.getElementById("start_button").id = 'reset_button';
var board = document.getElementById("game_background");
console.log("1");
board.addEventListener("keydown", inputListen(), false);
console.log("1.1");
}
function inputListen(e){
console.log("2");
var code = e.keyCode;
switch(code){
case 37:
alert("left");
break;
case 38:
alert("up");
break;
case 39:
alert("right");
break;
case 40:
alert("down");
break;
}
}
Dies scheint im Einklang mit wie Tutorials zeigen es. Um jedoch die addEventListener Linie mit etwas einige Tutorials zu ändern, würde wie folgt aussehen:
board.addEventListener("keydown", inputListen, false); //removes the() after the function
jedoch, die nicht für mich zu arbeiten scheint, wenn ich in meiner Konsole aussehen.
Wenn ich meinen Code meine Konsole ausführen, gibt mir die folgende Fehlermeldung:
1
2
Uncaught TypeError: Cannot read property 'keyCode' of undefined
at inputListen (script.js:86)
at gameStart (script.js:16)
at HTMLButtonElement.onclick (2048Game.html:114)
Ich denke, es ist, weil ich, keine Parameter meiner Funktion übergeben, aber keiner der Online-Tutorials passieren paraements in ihren addEventListener Erklärung.
Danke, Alex
Haben Sie wirklich die Datei und aktualisiert die Webseite nach dem Entfernen '()' gespeichert? Das Protokoll "2" sollte niemals vor "1.1" erscheinen. – kennytm
Wenn ich es entferne, funktioniert alles normal, aber ich bekomme keine der Warnungen, wenn ich die Pfeiltasten drücke. – alexp2603