如何一次抓住2个以上的按键?

时间:2014-01-07 00:44:02

标签: javascript jquery game-engine

最近我对创建JS游戏感兴趣。 (不是我有经验但我感兴趣的地区)。

我知道JS有几个游戏引擎,但我真的不想创建游戏。相反,我很好奇如何工作/如何创建一个。

我有几个问题:

  1. 任何人都有关于我在哪里可以阅读的建议吗?先决条件(需要什么知识)。

  2. 我尝试用长方形走路的小游戏。通过将keyup绑定到窗口并检查event.which以获取按下的键。我意识到,如果我同时点击2个按钮,其中只有1个正在注册。我怎么能克服这个?

    $(window).keyup(function(event){
         globalEvent = event.which;
    
    });
    

2 个答案:

答案 0 :(得分:5)

直接回答你的第二个问题。

这是一种方式:

var keyPressed = {};

$(window).keydown(function(e) {
    keyPressed[e.which] = true;
}).keyup(function(e) {
    keyPressed[e.which] = false;
});

现在,只要您想确定密钥是否已关闭,就可以使用keyPressed

// wherever
var key1 = 65, key2 = 66; // A and B
if (keyPressed[key1] && keyPressed[key2]) {
    // A and B are both being pressed.
}

答案 1 :(得分:4)

为了检测被按下的多个键,请使用keydown和keyup事件。

var keys = {};

$(document).keydown(function (e) {
    keys[e.which] = true;
});

$(document).keyup(function (e) {
    delete keys[e.which];
});