解決)メモ欄に記述したイベントで条件分岐する方法
Posted: 2021年11月30日(火) 02:25
・メモ欄に<FOOD>と記述したイベントをマップ内に複数配置
・捕食者のイベントを配置
・イベント(捕食者)が自分から一番近いイベント(FOOD)に向かって移動
・捕食者とFOODが重なるとFOODは消滅する(セルフスイッチで再現)
・捕食者はまだ消滅していない自分に近いFOODに向かって移動する
・FOODがマップ上から全て消滅するまで捕食者は行動を続ける
上記を行いたいのですが、
マップ内の「メモ欄に<FOOD>と書かれている」且つ「セルフスイッチがOFF」且つ「指定したイベントから一番近い」を満たすイベントのIDを変数に格納する方法はないでしょうか?
条件分岐
上記のスクリプトと条件分岐が近いかもと思ったのですが、これだと「プレイヤーから一番近いイベントのメモ欄にFOODの記述があるか」になってしまい、初心者の知識ではどうすべきかわからない状態です。
(「メモ欄に特定の記述のあるイベントのID」を取得する方法がわかればなんとなかなりそうなのですが...)
何かしらのヒントでも頂けましたらありがたいです。
・捕食者のイベントを配置
・イベント(捕食者)が自分から一番近いイベント(FOOD)に向かって移動
・捕食者とFOODが重なるとFOODは消滅する(セルフスイッチで再現)
・捕食者はまだ消滅していない自分に近いFOODに向かって移動する
・FOODがマップ上から全て消滅するまで捕食者は行動を続ける
上記を行いたいのですが、
マップ内の「メモ欄に<FOOD>と書かれている」且つ「セルフスイッチがOFF」且つ「指定したイベントから一番近い」を満たすイベントのIDを変数に格納する方法はないでしょうか?
コード: 全て選択
let vid = 1; // 取得する変数番号
let min = 20; // 最大距離
let get = null;
$gameMap.events().forEach(function(event){
let distance = $gameMap.distance($gamePlayer.x,$gamePlayer.y,event.x,event.y);
if (min >= distance) { min = distance; get = event; }
});
$gameVariables.setValue(vid, get ? get.eventId() : 0);
コード: 全て選択
$gameMap.event($gameVariables.value(1)).event().meta['FOOD']
(「メモ欄に特定の記述のあるイベントのID」を取得する方法がわかればなんとなかなりそうなのですが...)
何かしらのヒントでも頂けましたらありがたいです。