首页 文章

Javascript keydown空格键光标键

提问于
浏览
0

我在keydown事件上从光标键获取输入时遇到问题 . 我正在同时使用空格键和箭头keydown事件的keydown事件(在spaceinvaders游戏中,你应该能够同时移动并通过空格键触发) .

当按下空格键时,船应该能够同时沿x和y轴移动 . 现在的实际问题是:每当按下空格键时,我都可以上下移动,但不能前进和下移 . 我也可以向后和向下移动,但不能倒退 . 当没有按下空格键时,它可以工作,我可以对角移动 . 这同样适用于wasd键 .

if (e.keyCode == 37 || e.keyCode == 38 || e.keyCode == 39 || e.keyCode == 40) 
    e.preventDefault();

       if (e.keyCode == 32){
             e.preventDefault();
             spaceState = true;
       }

       if (e.keyCode == 87 || e.keyCode == 38) keyState["UpDown"]="w";//w
       if (e.keyCode == 83 || e.keyCode == 40) keyState["UpDown"]="s";//s

       if (e.keyCode == 65 || e.keyCode == 37) keyState["RightLeft"]="a";//a
       if (e.keyCode == 68 || e.keyCode == 39) keyState["RightLeft"]="d"; //d

组合w和d作品组合和作品

w,a和s,d DONT工作

当没有按空格键时,所有组合仍然有效,即使空格键返回keydown事件,也可以使用组合 . 问题只是为什么?

1 回答

  • 1

    我最近回答了一个very similar question所以我只是从那里复制我的答案 .

    赔率与您的代码无关 . 为节省成本,许多键盘不能同时支持3个或更多键的每个组合,并且专门用于支持常用的组合(例如Ctrl Alt Del) . 这种现象被称为“重影” .

    有关扩展说明,请参见this page from Microsoft .

相关问题