【ウディタ】初心者向けテクニック2(二点間の角度の算出)
1.二点間の角度の算出
座標(x1, y1)に対する座標(x2, y2)の角度を算出する。
……と表記するとすごーく面倒な気がしてしまいますね。
キャラに置き換えてみましょう。
プレイヤーキャラから見て敵はどの角度にいるかを算出する。
どうでしょう、さっきよりは興味を持てる感じになっているでしょうか?
2.難しく考えなくてもOK
例の如くウディタには角度を算出する機能が既に備わっています(図2-1)。
難しいことは考えず、
「手順通りにやると相手のいる角度がわかるらしいぞ」
ぐらいの軽い気持ちでやっていきましょう。
3.二点間の角度の算出(ウディタ)
ウディタの場合、相手と自分の座標の差分を渡すだけで
角度を算出してくれます。
例えばキャラが座標(10, 10)にいて、
敵が座標(20, 30)にいるとしたら、
差分は下記の通りになります。
差分x座標(10) = 敵のx座標(20) - キャラのx座標(10)
差分y座標(20) = 敵のy座標(30) - キャラのy座標(10)
差分y座標(20) *= - 1
これをウディタの算出機能にそれぞれ渡せばOKです(実例は図3-1)。
角度 = ウディタの角度算出機能(差分x座標, 差分y座標)
y座標に-1を掛けているのは、ウディタの仕様上、
上がマイナスで下がプラスになるためです。
※ウディタの場合は画面最上部がy座標0で
下にいくほどどんどんy座標が増えていくので、
グラフなどのy座標とは考え方が真逆になる。
ここも混乱しやすいところだと思うので、
そういうもんなんだ理解でもOKです。
また、ウディタ側に記載もある通り、
算出された角度は掛ける10された値になっているので、
本来の角度を算出する場合は割る10する必要がある点に注意です。
が、ウディタは角度を常に掛ける10の値で扱う仕様であるため、
ピクチャなどに利用する場合はそのままでもよさそうです。
4.サンプルコモン
画面中央から見て0度~90度までの角度の範囲に
マウスカーソルがある場合に〇を表示、
ない場合は×を表示するサンプルコモンを置いておきます。
https://kazaeditor.net/asset/Tech02_SampleCommon.zip
プレイヤー機に向かって攻撃を放つ敵キャラの実装や
キャラの視野に敵キャラがいるかの判定など、
色んなことに応用出来そうですね。