85DATA HOMEへ
MYCAR情報掲示板BLOGプロフィール

HOME → 情報 → ActiveBasic

■ 縦スクロールゲームはActiveBasicで作れる?(メモ1 敵の動き)

次の敵キャラクターは画面の上から、自機に近づき反転して帰っていきます。

どんな、計算をしているのかのメモです。(自分の為?)

一言で言ってしまえば、(超?)基本的な三角関数 (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度に変化させている。