自作ゲームの大福島

プログラムの使えない素人がCF2.5を使ってゲームを作ってみるブログです

スポンサードリンク

CF2.5 三角関数を使った自力!円運動講座

おまえと…おまえとだけは戦いたくなかった…。

 

そう。

 

三角関数

 

 

*本文下部に、エクステンション無し、三角関数を用いた、「円動作」の作り方解説が御座います。面倒な方は下段までスクロールして下さい*

 

 

 

先日、あいも変わらず敵AIを作成していた時の事ですが、

自機狙いの弾を発射する敵MOBを作成する際、今までなら「オブジェクトの方向に発射」という便利な既成イベントを使用していたのですが、ふっ と思いつきで

「『オブジェクトを発射』を使用するイベントはバグや制約が多いと聞く。なら自作でイベントを組んでみるか…」

と思い立ってしまったのが運のつき。

そこから、深くて長い、おまけに暗い「三角関数」のトンネルに入ってしまったのです。…

 

当然のごとく組み方を思いつかなかった私は、某サイトの自機狙い弾の作成講座を参考に、とりあえず教えられるがまま、イベント自体は組めるようになりました。

そこで、このような動作は三角関数の使用が必要という事が判明。

(講座の作成主様はどうやらその講座へのリンク、拡散を望んではおられないようですので、当サイトからのリンクや、タイトル名の公表は控えさせて頂きます。ごめんなさい)

 

 

ですが、ヘタレのくせに負けず嫌いなワタクシは、気の迷いから、「どうせやるなら

三角関数をこの機にマスターしたろやないかい!」と考えてしまったわけですね。

どうすんだ。高校時代数学の成績5段階中1だったくせに。テストで0点を2回とったくせに。

 

というわけで、無い頭を振り絞り、様々な先人の知恵をお借りし(開発言語での講座も参考にしつつ)、何とか自分自身の頭で最低限理解出来るようになりましたので、同じ悩みを持つCF2.5ユーザーの方に共有です。

今回は「円運動」です。ベクター動作で簡単に出来るじゃん。というのは無しで。

自機狙い弾は割りと講座が有名なので、知っている方も多いだろう、という事で

円動作の解説で御座います。

 

 

CF2.5での円運動の作り方

f:id:vobo:20170714025449p:plain

ここで言う円運動とは、『ある座標を中心に、360°オブジェクトが回転する動作』 を指します。この『360°』というのがポイントです。

f:id:vobo:20170714030143p:plain

少し見方を変えてみると、円運動とは、「オブジェクトがくっついた○○ピクセル分の長さの棒が、360°回転する動作」と言えます。

 更に言い換えれば、棒の長さ=円の半径である、と言えますね。

 次に、「角度」という言葉が出てきましたので、円運動における角度を図に表してみます。

 

f:id:vobo:20170714032453p:plain

 勿論左右がX軸、上下がY軸。線が交わる点が、円運動の中心座標と考えて下さい。

f:id:vobo:20170714033352p:plain

続いて、先ほどの画像に、円運動するオブジェクトと、半径、角度の関係を重ねてみました。

……これって何かで見たような

 

f:id:vobo:20170714033744p:plain

あっっ!!(察し)

 

 

そうです。

これって、数学の授業で見た、あの忌まわしき

直角三角形

になってるんですね。

つまり、円運動というのは

f:id:vobo:20170714034657p:plain

『直角三角形の斜辺を半径として、オブジェクトのXY座標が、360°移動する』

というプログラムになるわけです。

f:id:vobo:20170714035718p:plain

こんな感じで動いていくわけですね。

つまり、オブジェクトを円運動させるためには

 

直角三角形の辺の長さを用いてオブジェクトのXY座標を求め続ける必要があるわけです。

 

…ああ、長い。

次回は実際のイベント講座まで進めたいと思います。

続く!と思います…