指定座標にIDを問わずイベントがいるかどうかを判断する方法
Posted: 2022年4月07日(木) 08:58
指定座標にIDを問わずイベントがいるかどうかを判断し、存在した場合にそのイベントのIDを取得する、という事は可能でしょうか。
返信ありがとうございます。デフォルトであったんですね。完全に見落としていました…ゆわか さんが書きました:イベントコマンドの3ページ目、マップというグループに「指定位置の情報取得」というコマンドがあります。
それを使用すると指定座標にあるイベントのIDを取得できます。
検索すれば、こういった参考になるスレッドが出てきます。やまもと さんが書きました:返信ありがとうございます。デフォルトであったんですね。完全に見落としていました…ゆわか さんが書きました:イベントコマンドの3ページ目、マップというグループに「指定位置の情報取得」というコマンドがあります。
それを使用すると指定座標にあるイベントのIDを取得できます。
http://kitsunebigakuen.blog.fc2.com/blog-entry-70.html
こちらのサイト様で掲載されているスクリプトを元に衝突判定を並列処理で行なっているのですが、例えば
1. イベントID◯番の周囲にイベントが存在するかを判定
2.イベントが存在した場合に、そのイベントのIDを取得する
といった事が上記サイトのようなスクリプトで出来ないかと思っております
ご紹介頂いたコマンドでは実現できそうになかったので、改めてまた質問として上げさせていただきます。
コード: 全て選択
◆変数の操作:#0001 イベント1X = this.character(1).x;
◆変数の操作:#0002 イベント1Y = this.character(1).y;
◆変数の操作:#0003 調査X = イベント1X
◆変数の操作:#0004 調査Y = イベント1Y
◆注釈:下方向調査
◆変数の操作:#0003 調査X = イベント1X
◆変数の操作:#0004 調査Y = イベント1Y
◆変数の操作:#0004 調査Y += 1
◆指定位置の情報取得:相手イベントID, イベントID, ({調査X},{調査Y})
◆条件分岐:相手イベントID ≠ 0
◆文章:なし, ウィンドウ, 下
: :下に何かいる!
◆
:分岐終了
◆注釈:上方向調査
◆変数の操作:#0003 調査X = イベント1X
◆変数の操作:#0004 調査Y = イベント1Y
◆変数の操作:#0004 調査Y -= 1
◆指定位置の情報取得:相手イベントID, イベントID, ({調査X},{調査Y})
◆条件分岐:相手イベントID ≠ 0
◆文章:なし, ウィンドウ, 下
: :上に何かいる!
◆
:分岐終了
◆注釈:左方向調査
◆変数の操作:#0003 調査X = イベント1X
◆変数の操作:#0004 調査Y = イベント1Y
◆変数の操作:#0003 調査X -= 1
◆指定位置の情報取得:相手イベントID, イベントID, ({調査X},{調査Y})
◆条件分岐:相手イベントID ≠ 0
◆文章:なし, ウィンドウ, 下
: :左に何かいる!
◆
:分岐終了
◆注釈:右方向調査
◆変数の操作:#0003 調査X = イベント1X
◆変数の操作:#0004 調査Y = イベント1Y
◆変数の操作:#0003 調査X += 1
◆指定位置の情報取得:相手イベントID, イベントID, ({調査X},{調査Y})
◆条件分岐:相手イベントID ≠ 0
◆文章:なし, ウィンドウ, 下
: :右に何かいる!
◆
:分岐終了
コード: 全て選択
//イベント1にイベント3が隣に来るとコモンイベント4が実行される
const mainEventId = 1;
const targetEventId = 3;
const commonEventId = 4;
const range = 1;
if ((this.character(targetEventId).x + range) >= this.character(mainEventId).x
&& (this.character(targetEventId).y + range) >= this.character(mainEventId).y
&& (this.character(targetEventId).x - range) <= this.character(mainEventId).x
&& (this.character(targetEventId).y - range) <= this.character(mainEventId).y) {
$gameTemp.reserveCommonEvent(commonEventId);
}