我的跳跃脚本在做什么错?

时间:2019-01-05 01:40:59

标签: javascript

我正在构建2D平台游戏。而且我还没有编写用于跳跃等所有内容的脚本,但是我有可以向各个方向移动的基本脚本:

document.onkeydown = checkKey;

function checkKey(e) {

    e = e || window.event;

    if (e.keyCode == '38') {
      if (yVel <= 4){
        yVel += speed;
      }else{
        yVel = yVel
      }
      y -= yVel;

    }
    else if (e.keyCode == '40') {
      if (yVel <= 4){
        yVel += speed;
      }else{
        yVel = yVel
      }
      y += yVel;
    }
    else if (e.keyCode == '37') {
      if (xVel <= 4){
        xVel += speed;
      }else{
        xVel = xVel
      }
      x -= xVel;
    }
    else if (e.keyCode == '39') {
      if (xVel <= 4){
        xVel += speed;
      }else{
        xVel = xVel
      }
      x += xVel;
    }

结果应该是脚本,如果需要的话,它可以让您对角移动,但是我所得到的是,例如,当您按下向上键时,它上升了,但是当您按下任何其他按钮时,例如,对,则它停止向上运动,仅向右运动。 项目代码为:https://repl.it/@MarkelL/Break-It 这是项目本身:https://break-it--markell.repl.co/

非常感谢您的解释。谢谢!

1 个答案:

答案 0 :(得分:0)

这是因为onKeyDown被第二次按键覆盖。您需要为正在监听的上/下键和左/右键(这样它们可以相互覆盖)编写一个事件侦听器-如果您使用的是Phaser之类的f2d框架,则它们指定了可以绑定到的keyDown事件。 Here是检测多次按键的一种方法