如何让子弹在 Phaser 3 中沿光标方向移动?

How to make bullet move in direction of cursor in Phaser 3?

我正在创建一个 2D 游戏并试图让子弹向光标移动。我不确定如何做到这一点是我目前拥有的

let xDist = this.game.input.mousePointer.x - this.x;
let yDist = this.game.input.mousePointer.y - this.y;
let angle = Math.atan(yDist/xDist);

this.projectile_sprite.setVelocityX(yDist);
this.projectile_sprite.setVelocityY(xDist);

弹丸越远移动速度越快,这不是我想要的。我该如何解决这个问题?

在 Phaser 中,速度基本上是您的对象向未指定点移动的速度。您正在将射弹的速度设置为对象和光标之间的距离,因此当光标离对象越远时,它的速度就会越高,因此移动得更快。

相反,您想找到光标的位置并将您的射弹对象设置为朝该点移动。由于您使用的是 setVelocityX() 我假设您使用的是内置物理库,所以它应该像这样简单:

this.physics.moveTo(this.projectile_sprite, this.game.input.mousePointer.x,
  this.game.input.mousePointer.y);