次の敵キャラクターは画面の上から、自機に近づき反転して帰っていきます。
どんな、計算をしているのかのメモです。(自分の為?)
一言で言ってしまえば、(超?)基本的な三角関数 (Sin と
Cos )を使用しています。
※パソコンの座標
y位置が数学的な表現と逆になっていて、下に行く程プラス、上がマイナスになっています。
まず、B点のy座標を決定します。乱数で
0から-100にしてあります。
直線ABを半径1とし
直線BCを半径2=直線AB/乱数(整数
2〜4※) ・・・・これによって楕円になる。
※割る数値が小さいほど新円になり、横から敵が来るので難しくなる。
α=角度 (0度〜180度までループさせる)
Dの座標 (敵機)
・・・・ B点からの相対座標
Ty = AB×Sin (α×π/180)
Tx =
BC×Cos(α×π/180)
※上記 π/180は角度からラジアンへ変換するために乗じている。予め 0〜360度までのSin , Cos
を計算させておき、配列変数に入れておいた。
これだと、敵機はα=90度の時に必ず、自機にぶつかって来る。
(自機が移動していなければね)
それでは、あまりにも難しくなるので、
半径@(直線AB)
と半径A(直線BC)を計算した後に、B点の位置を移動させる。
B点移動も、プラスにするのかマイナスにするのかも乱数で決める。
A点(自機)の位置が右側ならば、α角を180度〜0度に変化させ、左側ならば、0〜180度に変化させている。