角度からX座標とY座標の移動量を計算するのは誰もがいつかは直面する課題です。現在のカリキュラムでは三角法を履修しない学校も多いため掲載することにしました(ゆとり?)。
まず円周率を定義します。
const double PI = 3.141592653589793f;
次に角度とスピードを決定します。
double degree = 45.0f; // 角度(サンプル) double speed = 8.0f; // スピード(サンプル)
次に角度をラジアンという単位に変換します。初級ゲームプログラミングであれば内容を理解する必要はありません。この行程が必要なんだなぁ…、程度で問題ありません。
double radian = (degree * PI) / 180.0f;
次に三角関数に食わせて結果の値を取得します。
double vectorX = cos(radian); double vectorY = -(sin(radian)); // Y 座標の原点が左下の場合は符号を反転してください。
実は sin() と cos() の結果は -1 ~ 1 までの数値になるため、最後に移動量で乗算して完了です。
vectorX = vectorX * speed; vectorY = vectorY * speed;
vectorX がX座標の移動量、 vectorY がY座標の移動量です。
Contributions