我正在尝试开发一个小型 Java 2d 塔防游戏,但在尝试计算如何制造导弹时遇到了问题。经过数小时的搜索和测试,我更加困惑。
到目前为止,我所拥有的是:
- 4 种情况,具体取决于塔所在的位置,具体取决于发射单位(NW、NE、SW、SE)
- 我需要计算当前目标和导弹来自的塔之间的距离
Math.sqrt(x2, x1, y2, y1)
。 - 缩放导弹的 x 和 y。
现在我遇到的问题是如何将导弹的增量 x 和 y 缩放到目标,这样看起来很现实。数学不是我的强项,它在这里展示。下面我展示了我在塔的 SE 象限中拥有的东西。
public int distanceX, distanceY;
public double sep, scale;
if(xBullet < Screen.mobs[shotMob].x && yBullet < Screen.mobs[shotMob].y){
distanceX = Screen.mobs[shotMob].x- xBullet;
distanceY = Screen.mobs[shotMob].y - yBullet;
sep = Math.sqrt( (distanceX * distanceX) + (distanceY * distanceY));
scale = // This is the part I am confused about.
xBullet += distanceX * scale;
yBullet += distanceY * scale;