快速按键无法更改变量

时间:2018-12-14 10:53:15

标签: javascript

我正在尝试创建游戏。我想通过按键来改变播放器的方向。

function keyPressed() {
  if (keyCode === UP_ARROW) {
    s.dir(0, -1);
  } else if (keyCode === DOWN_ARROW) {
    s.dir(0, 1);
  } else if (keyCode === RIGHT_ARROW) {
    s.dir(1, 0);
  } else if (keyCode === LEFT_ARROW) {
    s.dir(-1, 0);
  }
}

当我按2个键的速度太快时。我得到这些输出:

  

按下1 0 0 1

     

按下0 1 -1 0

但是在第二次调用中,似乎无法注册输入x为-1。因此,方向不变。

    this.dir = function(x, y) {
    console.log("pressed", this.xspeed, this.yspeed, x, y)
    if (y === -1) { // up
      if (this.y - scl != this.tail[this.tail.length-1].y) {
        this.xspeed = x;
        this.yspeed = y;
      }
    }
    if (y === 1) { // Down
      if (this.y + scl != this.tail[this.tail.length-1].y) {
        this.xspeed = x;
        this.yspeed = y;
      }
    }
    if (x === -1) { // Left
      if (this.x - scl != this.tail[this.tail.length-1].x) {
        this.xspeed = x;
        this.yspeed = y;
      }
    }
    if (x === 1) { // Right
      if (this.x + scl != this.tail[this.tail.length-1].x) {
        this.xspeed = x;
        this.yspeed = y;
      }
    }
  }

1 个答案:

答案 0 :(得分:0)

我“解决”了它。 我误解了什么对我没有用。

`if (this.x - scl != this.tail[this.tail.length-1].x) {`

如果这行弄乱了我的代码,这是。一切都按预期进行。

不能删除问题,感谢您的快速解答