如何在Phaser JS中实现Sprint功能



我正在尝试开发一个闪闪发光的敌人的道奇风格游戏,该游戏具有播放器在保持空格键时"冲刺"的能力。

我试图在space.isdown((为真时尝试乘以播放器的速度,但是一旦按下空间,玩家就会消失。

function update() {
  if (gameState.cursors.left.isDown) {
    gameState.player.setVelocityX(-160);
  } else if (gameState.cursors.right.isDown) {
gameState.player.setVelocityX(160);
  } else {
gameState.player.setVelocityX(0);
  }
  //Sprint Ability
 if (gameState.player.velocityx != 0 && gameState.cursors.space.isDown){
  gameState.player.setVelocityX(gameState.player.velocityx * 2);
  } else {};
}

您的代码正在设置播放器的速度,每次更新时,播放器的当前速度加倍,通常每秒60倍。因此,玩家的速度迅速加倍,因此由于屏幕的速度而消失。

为了避免这种情况,为玩家的速度定义常数,并将速度设置为加倍常数。

这是我制作的游戏中使用的一些代码:

if(Game.controls.Run.isDown) {
    player.body.velocity.x = playerSpeed*2;
}

playerSpeed是定义播放器水平运动速度的常数,在您的情况下,它似乎是160。

您应该能够为您的代码进行修改。

相关内容

  • 没有找到相关文章

最新更新