自作ゲームの大福島

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

スポンサードリンク

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

 

初めに。

この講座はあくまでCF2.5で三角関数を扱う際に理解を深める為の物で御座います。

数学的に正しい情報では間違っても御座いませんので、正式な三角関数の知識が必要な方は間違っても当講座を参照されないようにご注意下さいませ。

 

 

 

前回の続きです。

前回で、円運動には三角形の角度と辺の長さを計算してやる必要があるよ、という事まで説明致しました。

今回は、本題である三角関数を使って実際に座標計算してやるところまで行こうと思いますよ!

図で確認しておきましょう。

f:id:vobo:20170714115058p:plain

オブジェクトを既成の動作を使わず移動させる為には、常に「移動先の座標」を計算してやる事が必要になるわけですが、円運動に於いては、

中心点を起点とした三角形の、底辺の長さがX座標

縦に伸びる辺の長さがY座標

と言えます。

 たとえば、上の図の中心点が(Y、X)=(0,0)だとして、底辺が10ピクセル、縦の辺が6ピクセルだとしたら、オブジェクトの座標は(-6、-10)の位置にあるという事です。

で、今の三角形の中心の角度が220°だと仮定しますと、次のフレームで221°になった時、底辺、縦辺の長さがどうなるか、を計算していくわけですね。

 

ここでいよいよ三角関数が出てきます。

f:id:vobo:20170714123437p:plain

懐かしいこれです。超ざっくり説明しますと、

中心角がθ°だった際の斜辺の長さが「1」だった時の、縦の辺の長さ比率=sinθ

底辺の長さ比率=cosθ

 

 例えば、斜辺の長さが10ピクセル。角度θが40°だった時、斜辺に対する比率である

sinθ=0.4 cosθ=0.9 といった感じに、斜辺に対する比率を返すのがCF2.5における三角関数です。(数字は全く正しくありませんので悪しからず)

なので実際に数字を代入してみると、以下のようになりますね。

f:id:vobo:20170715012351p:plain

比率から具体的な数字を出す為には、角度θ(40°)の中心座標が0.0だとすると、

sinθ(比率)×斜辺=0.4×10=4→Y座標は-4

cosθ(比率)×斜辺=0.9×10=9→X座標はー9

という風に、具体的な座標を求める事が出来るわけです。

 

 

では、具体的にCF2.5で円動作を実現する為に、どんなイベントが必要なのかを見てみます。 

f:id:vobo:20170715012923g:plain

上記画像で、■を中心として、緑のオブジェクトが一定速度で回転し続けるイベントをシンプルな形で組んだものが以下になります。

f:id:vobo:20170715013545g:plain

 こいつを実行すると、一定速度で■の周りをオブジェクトが右回りに回転し続ける動作の完成です。もうこの段階で全てを理解された方もいらっしゃると思います。

次回は、イベントの詳細な解説と、発展系(中心点を自由に動かしたり、逆周りの動作をさせたり、角度の変数を操作したり…といったイベント)の解説を出来れば、と思います。

 

サクサク解説まで完了出来ればいいのですが、思っていた以上に時間がかかりますね…

それではまた近い内に更新出来るように致します!