私は小さなJava2Dタワーディフェンスゲームを開発しようとしていますが、ミサイルの使い方を計算しようとして問題が発生しました。何時間もの検索とテストの後、私はさらに混乱しています。
私がこれまでに持っているのは:
- タワーが発射されているユニット(NW、NE、SW、SE)に応じて、タワーの位置に応じて4つのケース
- を使用して、現在のターゲットとミサイルが到達しているタワーとの間の距離を計算する必要があり
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;