无法将w,a,s和d密钥代码一起放入Javascript中的数组中

时间:2014-09-11 13:29:44

标签: javascript arrays

如果我的英语不是很好,请原谅我,这不是我的第一语言,抱歉。

当我试图将这些字符的密钥代码放入时,我发现了一些东西:w,a,s和d到一个数组中。似乎我只能放置其中3个字符的组合,当按下所有4个键盘键时,有时只会注册2个字符。 我的数组看起来像这样:     game.keySlots = [0,0,0,0];

每次发生此事件时,都会将一个键放入数组中:

$(this).keydown(function(e) {
    directionalMovements(e.keyCode ? e.keyCode : e.which, e.type);
});

$(this).keyup(function(e) {
    directionalMovements(e.keyCode ? e.keyCode : e.which, e.type);
});

这是函数的外观:

function directionalMovementsPlayer(offendingKey, eventType) {
    if (offendingKey == 87 || offendingKey == 83 || offendingKey == 65 || offendingKey == 68) {
        if (eventType == "keydown") {
            if (offendingKey != game.keySlots[0]) {
                for (count = 3; count > 0; count--) {
                    game.keySlots[count] = game.keySlots[count - 1];
                }       

                game.keySlots[0] = offendingKey;
            }
        } else {
            var keyLoc;

            for (count = 0; count < 4; count++) {
                if (offendingKey == game.keySlots[count]) {
                    keyLoc = count;
                }
            }

            game.keySlots[3] = 0;

            for (i = keyLoc; i < 3; i++) {
                game.keySlots[i] = game.keySlots[i + 1];
            }
        }
    }
}

这段代码实际上可以做我想做的事情,我只是好奇为什么我不能在一个时间点将所有4个键放在数组中。我知道有其他方法可以捕获密钥,我只是想试验这个。抱歉,如果它看起来很傻。她

0 个答案:

没有答案