因此,我有一个游戏,除非用户按下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/

10-10 02:08