javascript:如何使播放器连续移动

时间:2018-08-14 15:36:19

标签: javascript p5.js

我正在创建游戏,但是遇到一个问题,我想向左或向右移动玩家,但是当我按下按钮时,它只能向左或向右移动一次,而不是连续移动

var player 1 = new Player(width / 4)

function keyPressed() {
    if (key === "d") {
        player1.move(1);
      } else if (key === "a") {
        player1.move(-1);
      }
   }



function Player(xPos) {
  this.x = xPos;
  this.y = height - 100;

  this.show = function() {
    fill(255);
    rectMode(CENTER);
    rect(this.x, this.y, 50, 100);
  }

  this.move = function(dir) {
    this.x += dir * 5;
  }
}

1 个答案:

答案 0 :(得分:0)

使用keyIsDown()代替keyPressed()

来自documentation

  

keyIsDown()函数检查密钥当前是否处于按下状态,即   按下。如果您有一个可移动的物体并且想要   几个键可以同时影响其行为,例如   对角移动精灵。您可以输入代表   键的keyCode,或使用任何可变的keyCode名称   在这里列出。

也应该在draw()函数内部:

function draw(){
    if(keyIsDown("d")){
        player1.move(1);
    }
    if (keyIsDown("a")) {
        player1.move(-1);
    }
}