因此,我有一个游戏,除非用户按下Enter键,否则我试图阻止它启动。
这是我的代码:
var code = (e.keyCode ? e.keyCode : e.which);
var enterpressed = 0;
do {
if(code == 13) { //Enter keycode
enterpressed = 13;
}
ctx.font = "25px Helvetica";
drawStartScreen();
update();
} while (enterpressed === 13);
这是完整的程序,在JSfiddle上:
http://jsfiddle.net/3aoozxte/6/
编辑:我想通了!
这是程序的工作方式:
http://jsfiddle.net/84c2k5kg/6/
最佳答案
这是您的问题的解决方案。
我已将Enter键逻辑添加到您的keydown
事件监听器中。因此,当您按Enter键时,它将开始游戏。
我删除了startGameScreen()
中的循环,以防止浏览器因重复此无限循环而崩溃。
http://jsfiddle.net/3aoozxte/19/
function main() {
canvas = document.createElement("canvas");
canvas.width = COLS*20;
canvas.height = ROWS*20;
ctx = canvas.getContext("2d");
document.body.appendChild(canvas);
ctx.font = "12px Helvetica";
frames = 0;
keystate = {};
started = false;
// keeps track of the keyboard input
document.addEventListener("keydown", function(evt) {
keystate[evt.keyCode] = true;
if(keystate[Key_ENTER] && !started) { // Start the game if it's not started and Enter is pressed.
started = true;
init();
loop();
}
});
document.addEventListener("keyup", function(evt) {
delete keystate[evt.keyCode];
});
//Attempting to create a welcome screen
startGameScreen();
}
function startGameScreen() {
ctx.font = "25px Helvetica";
drawStartScreen();
}
关于javascript - 尝试检测JS中的Enter键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25681166/