ある点からある点へ向かうための移動量を求めるには atan2() 関数を使います。これはホーミング弾を作る場合などに使います。
まず、移動量を定義します。
const double speed = 8.0f; // スピード(サンプル)
次に、目的の座標と自分の座標との差を求めます。
double dx = targetX - fromX; double dy = targetY - fromY;
算出した差を atan2() 関数に食わせます。
double radian = atan2(dy, dx);
atan2() 関数の結果を cos() 関数と sin() 関数へ食わせて移動量を求めます。
double vectorX = cos(radian); double vectorY = sin(radian);
cos() と sin() の結果は -1 ~ 1 の間になるため移動量で乗算します。
vectorX = vectorX * speed; vectorY = vectorY * speed;
このときの vectorX と vectorY が、ある点からある点へ向かって speed の分だけ移動するための移動量になります。 vectorX がX座標の移動量、 vectorY がY座標の移動量です。
Contributions