如何让子弹在 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);
我正在创建一个 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);