CF2.5 三角関数を使った自力!円運動講座
おまえと…おまえとだけは戦いたくなかった…。
そう。
三角関数。
*本文下部に、エクステンション無し、三角関数を用いた、「円動作」の作り方解説が御座います。面倒な方は下段までスクロールして下さい*
先日、あいも変わらず敵AIを作成していた時の事ですが、
自機狙いの弾を発射する敵MOBを作成する際、今までなら「オブジェクトの方向に発射」という便利な既成イベントを使用していたのですが、ふっ と思いつきで
「『オブジェクトを発射』を使用するイベントはバグや制約が多いと聞く。なら自作でイベントを組んでみるか…」
と思い立ってしまったのが運のつき。
そこから、深くて長い、おまけに暗い「三角関数」のトンネルに入ってしまったのです。…
当然のごとく組み方を思いつかなかった私は、某サイトの自機狙い弾の作成講座を参考に、とりあえず教えられるがまま、イベント自体は組めるようになりました。
そこで、このような動作は三角関数の使用が必要という事が判明。
(講座の作成主様はどうやらその講座へのリンク、拡散を望んではおられないようですので、当サイトからのリンクや、タイトル名の公表は控えさせて頂きます。ごめんなさい)
ですが、ヘタレのくせに負けず嫌いなワタクシは、気の迷いから、「どうせやるなら
三角関数をこの機にマスターしたろやないかい!」と考えてしまったわけですね。
どうすんだ。高校時代数学の成績5段階中1だったくせに。テストで0点を2回とったくせに。
というわけで、無い頭を振り絞り、様々な先人の知恵をお借りし(開発言語での講座も参考にしつつ)、何とか自分自身の頭で最低限理解出来るようになりましたので、同じ悩みを持つCF2.5ユーザーの方に共有です。
今回は「円運動」です。ベクター動作で簡単に出来るじゃん。というのは無しで。
自機狙い弾は割りと講座が有名なので、知っている方も多いだろう、という事で
円動作の解説で御座います。
CF2.5での円運動の作り方
ここで言う円運動とは、『ある座標を中心に、360°オブジェクトが回転する動作』 を指します。この『360°』というのがポイントです。
少し見方を変えてみると、円運動とは、「オブジェクトがくっついた○○ピクセル分の長さの棒が、360°回転する動作」と言えます。
更に言い換えれば、棒の長さ=円の半径である、と言えますね。
次に、「角度」という言葉が出てきましたので、円運動における角度を図に表してみます。
勿論左右がX軸、上下がY軸。線が交わる点が、円運動の中心座標と考えて下さい。
続いて、先ほどの画像に、円運動するオブジェクトと、半径、角度の関係を重ねてみました。
……これって何かで見たような
あっっ!!(察し)
そうです。
これって、数学の授業で見た、あの忌まわしき
直角三角形
になってるんですね。
つまり、円運動というのは
『直角三角形の斜辺を半径として、オブジェクトのXY座標が、360°移動する』
というプログラムになるわけです。
こんな感じで動いていくわけですね。
つまり、オブジェクトを円運動させるためには
直角三角形の辺の長さを用いてオブジェクトのXY座標を求め続ける必要があるわけです。
…ああ、長い。
次回は実際のイベント講座まで進めたいと思います。
続く!と思います…