Help us understand the problem. What is going on with this article?

ツクールMVで距離を計算するプラグインコマンドとその使い方

More than 3 years have passed since last update.

プレイヤーが一定の距離まで近づくと、隠れていた敵が現れて近づいてくるイベントを作りました。
SCGetDistance_arg3_1.gif

距離を条件にした条件分岐が見つからなかったので、距離を計算して変数に格納する部分をプラグインコマンドで作ってみました。

イベントは、隠れて動かない状態(1ページ目)、現れて追いかける状態(2ページ目)の2つで、セルフスイッチAで切り替えています。
1ページ目では並列処理を使い、距離を計測し続けます。条件が真になったらセルフスイッチAをONにして2ページ目へ移ります。

2つのイベントの距離の計算

プラグインコマンド呼び出し

SCGetDistance E1 E2 V1

2 つのイベントの距離を計算します。

引数 説明
E1 1つ目のイベントの番号です。
E2 2つ目のイベントの番号です。
V1 計算した距離を格納する変数の番号です。

イベントの番号は、イベントに割り振られた番号のほかに、
0 で呼び出したイベント、-1 でプレイヤーのイベントを表せます。

用例

イベントのページ1の設定は次のとおりです。
arg3-page1.png

1行目で、 SCGetDistance 0 -1 20 を実行しています。
このイベント(イベントID=0)とプレイヤー(イベントID=-1)との距離を計算して、結果を変数20番(名称:ワーキング変数1)に格納します。

その後、通常の条件分岐を使って、変数20番(名称:ワーキング変数1)が 2 以下ならばセルフスイッチAを ON にします。
この条件分岐は、このイベントとプレイヤーとの距離が 2 よりも近いという意味になります。

イベントと座標との距離の計算

プラグインコマンド呼び出し

SCGetDistance E1 X1 Y1 V1

イベントと指定した座標との距離を計算します。

引数 説明
E1 イベントの番号です。
X1 座標の X 軸の値です。
Y1 座標の Y 軸の値です。
V1 計算した距離を格納する変数の番号です。

イベントの番号は、イベントに割り振られた番号のほかに、
0 で呼び出したイベント、-1 でプレイヤーのイベントを表せます。

用例

イベントのページ1の設定は次のとおりです。
arg4-page1.png

1行目で、 SCGetDistance 0 0 66 20 を実行しています。
このイベント(イベントID=0)と座標(0, 66)との距離を計算して、結果を変数20番(名称:ワーキング変数1)に格納します。

その後、通常の条件分岐を使って、変数20番(名称:ワーキング変数1)が 2 以下ならばセルフスイッチAを ON にします。
この条件分岐は、このイベントと指定した座標との距離が 2 よりも近いという意味になります。

このイベントはルートを指定して進ませているので、この条件分岐を使わなくてもよいと思いますが、固定ではない移動をする場合などは必要になると思います。

SCGetDiatance_arg4_1.gif

余談ですが、セルフスイッチAをONにした後の設定の2ページ目は次のとおりです。
page2.png

参照

githubでプラグインを公開中
 このプラグインを使う場合は、上記の github をご利用いただくか、SCGetDistance.jsのリンク先を保存してください。

パンプキンヘッドとお菓子の迷宮:無料ゲーム配信中! [ふりーむ!]
 このプラグインを使った作品です。

謝辞

今回のサンプル画像でぴぽや様の画像を使わせていただきました。

sakura-crowd
ゲームをメインに個人でソフト開発をしています。Indie Game Developer. Unity/GameMaker:Studio/WolfRPGEditor/RPGMakerMV/HSP/python/javascript/SmileBasic/C#/C++
http://sakuracrowd.blogspot.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away