【ツクールMV】主人公と敵との距離(市街地距離)を算出する考え方メモ
こんにちは、シマです。
主人公と敵など他のオブジェクトとの距離を算出……したいとき、ありますよね?
自分は、あります。
今回は、ツクールMVのイベントを用いて、
距離の算出をしてみた自分なりの考え方メモを残してみようと思います。
もちろん、考え方、やり方は様々です!
自分の考え方よりもスマートなやり方や、
便利プラグインを開発されている方もいらっしゃるかと思います。
自分自身のツクり方は……あまり美しくない気がしておりますので、
ちょっと書くのが恥ずかしいのですが……
せっかくコメントをいただきましたので、メモしてみたいと思います。
それでもよろしければ、何かの参考程度になりましたらと思います。
--
160325追記
本記事では「距離」と記載していますが、
正しくは「道のり」や「遠さ」みたいな
ものだと思います。
正しい「距離」を算出するには、
この値に更に計算が必要かと思われます。
この件については、この記事では
扱わないことにさせていただきます。
調べてみると面白いかと思われます…!
便宜上、この記事では
「距離」という呼び名として書かせて
いただきたいと思います。
説明下手で申し訳ありません。
このあたりは門外漢なものなので、
他にもまちがったことを書いているかもしれません。
温かく見守っていただけましたら幸いです……。
--
160325さらに追記
距離じゃないかも問題についてですが、
こちら、「市街地距離(マンハッタン距離)」という距離概念のひとつとして
「距離」と呼んでもよさそうな感じだと教えていただきました。
大変勉強になりました。ありがとうございました!
--
まず、
「主人公と敵オブジェクト(対象)との距離」とはなんでしょう。
説明下手なものなので、図にしてみました。
……ええと、説明下手どころか手書きで読みづらかったらスミマセン。
「主人公と敵との距離」は、どうやら
主人公のX座標と敵のX座標の差と
主人公のY座標と敵のY座標の差を合算したもののようでした。
ですので、まず、
敵のX座標-主人公のX座標=Xの距離
敵のY座標-主人公のY座標=Yの距離
を算出しました。
お気づきかと思いますが、
互いの位置によっては、算出された値がマイナスになることもあります。
マイナスのままでは正しい値を求めることができません。
なので、算出された値がマイナスの場合は、
「-1」をかけてあげることで、自然数(であってたかな?)となるようにしました。
最後に足し算をします。
Xの距離+Yの距離=主人公と敵との距離
……という感じで考えてみていました。
この数値を用いて、下記のような処理をツクったりしておりました。
例えば、上記記事の下記の記述の箇所については、
-------
変数#0008
主人公と対象(歌姫)の位置の値から、
双方の距離が短くなるほど数値が大きくなるように計算した値
-------
100-算出した距離の値*10=音量
という計算を行い、演出をツクってみておりました。
「*10」の部分はお好みで。
……前述しましたように、
やり方はいろいろ!あると思います。
あくまで一例として薄目でご覧いただけましたら幸いです……。
ご覧いただきましてありがとうございました。