いちばんやさしいゲームの作り方

文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ

ある点からある点へ向かうための移動量を求めるには 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




Trackback URL

メルマガ登録・解除
 
挫折不可能!初級ゲームプログラミング完全マニュアル
RSS track feedいちばんやさしいゲームの作り方 カウンター
ブログSEO対策:track word あわせて読みたい SEO STATUS