我希望找到一种方法,使我的实体(子弹)沿着x和y移动,这是当子弹被发射时玩家所在的位置。因此,在我的实体类中,我有 -
float xSpeed = 1.0F;
float ySpeed = 0.0F;
如果我想让实体在对角线上移动,我会将xSpeed和ySpeed设置为1.0F。 那么如何让它朝另一个x和y的方向移动呢?
感谢您的帮助 编辑 - 问题已解决,感谢您的帮助 对于其他需要帮助的人,这是我的代码 -
float xSpeed = 0;
float ySpeed = 0;
然后我需要进行一些数学计算,以使它们以相同的速度移动。
ySpeed = ySpeed * (float) (2.5 / Math.sqrt(xSpeed * xSpeed + ySpeed * ySpeed));
xSpeed = xSpeed * (float) (2.5 / Math.sqrt(xSpeed * xSpeed + ySpeed * ySpeed));
使用以下代码设置xSpeed和ySpeed,基于您想移动向的x和y。
xSpeed = (Game.PlayerX - x) / 3;
ySpeed = (Game.Playery - y) / 3;
最后,将 xSpeed 和 ySpeed 加到实体的 x 和 y 上。
this.x += xSpeed;
this.y += ySpeed;