javascript - 如何在 Phaser JS 中实现冲刺能力?

标签 javascript phaser-framework game-development

我正在尝试开发一款闪避风格的游戏,其中敌人会掉落,玩家可以在按住空格键的同时“冲刺”。

我曾尝试在 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。

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

关于javascript - 如何在 Phaser JS 中实现冲刺能力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56795542/

相关文章:

java - 播放整个音频剪辑时遇到问题

unity-game-engine - 如何禁用游戏对象,使其在再次开始游戏时不会再次打开

javascript - 网页包 5 : Image src in html when using contentHash

javascript - 如何在 vue-tables-2 服务器端添加范围过滤器

javascript - 检查数组中的元素是否连续---javascript

javascript - 动态加载图像。 Phaser.js

javascript - 我想禁止蛇朝相反的方向走

javascript - 为什么这段代码给出了数字中的位 32(而不是 53)?

javascript - 使多部分 "fluid body"充当一个单一的 body

javascript - 如何在phaser.js中捕获全局触摸事件