我正在寻找一种让我的实体(子弹)向ax和y移动的方法,这是玩家在子弹射击时的位置.所以在我的实体课中我有 -
float xSpeed = 1.0F;
float ySpeed = 0.0F;
Run Code Online (Sandbox Code Playgroud)
如果我想在diaganal行中移动实体,我会使xSpeed和ySpeed = 1.0F如何让它在另一个x和y的dir中移动?
感谢您的帮助编辑 - 解决了,感谢您的帮助对于发现此问题需要帮助的其他人,这是我的代码 -
float xSpeed = 0;
float ySpeed = 0;
Run Code Online (Sandbox Code Playgroud)
然后我有一些数学能够使它们以相同的速度移动
ySpeed = ySpeed * (float) (2.5 / Math.sqrt(xSpeed * xSpeed + ySpeed * ySpeed));
xSpeed = xSpeed * (float) (2.5 / Math.sqrt(xSpeed * xSpeed + ySpeed * ySpeed));
Run Code Online (Sandbox Code Playgroud)
并且此代码用于设置xSpeed和ySpeed,基于您想要移动的ax和y
xSpeed = (Game.PlayerX - x) / 3;
ySpeed = (Game.Playery - y) / 3;
Run Code Online (Sandbox Code Playgroud)
然后,最后,将xSpeed和ySpeed添加到实体的x和y
this.x += xSpeed;
this.y += ySpeed;
Run Code Online (Sandbox Code Playgroud) java ×2