使用键下和键控事件对角线移动对象,Javascript



嗨,我在键向上和向下键事件中苦苦挣扎,我的努力是使屏幕上的对象在同时按下键"s"和"d"或"a"和"w"等后对角线移动。我读了很多关于这个的话题,对我来说没有结论。

这就是我到目前为止得到的:

    window.addEventListener("keydown", keysPressed, false);
    window.addEventListener("keyup", keysReleased, false);
         
        var keys = [];
         
        function keysPressed(e) {
            
            keys[e.keyCode] = true;
            var oldLeft = getComputedStyle(document.body).left,
                    newLeft;
            var oldTop = getComputedStyle(document.body).top,
                newTop;
            oldLeft = parseInt(oldLeft);
            oldTop = parseInt(oldTop);
             
            
            if (keys[65]) {
                newLeft = oldLeft - 10;
            }
             
            else if (keys[68]) {
                newLeft = oldLeft + 10;
            }
            else if (keys[87]) {
                newTop = oldTop - 10;
            }
            else if (keys[83]) {
                newTop = oldTop + 10;
            }
            
            document.body.style.left = newLeft + 'px';
            document.body.style.top = newTop + 'px';
               
            e.preventDefault();
         }
         
        function keysReleased(e) {
            keys[e.keyCode] = false;
         }

我知道那里有很多类似的问题,我看到了很多,但仍然无法理解它是如何工作的。

您需要

删除else if (keys[87]) {中的else,使用当前代码,如果按左或右,您不会检查向上/向下。

注意:我没有检查键码,但我认为它们对应于您想要的键。

相关内容

  • 没有找到相关文章

最新更新