こんにちは、今日はRPGツクールMVでスクリプトからプレイヤーやイベントの位置を取得する方法についてまとめていきます。
確認環境
RPGツクールMV Version 1.6.2
プレイヤーやイベントの位置を取得する
js/rpg_objects.js 9028行目に定義されているGame_Interpreterクラスのcharacter関数を使用します。
引数に数値を渡すと、以下の通りのキャラクターデータが返されます。
- 0より小さい数値の場合 – プレイヤー
- 0より大きい数値の場合 – 現在のマップのイベントIDに対応するイベント
- 0の場合 – このイベント
Game_Interpreter.prototype.character = function(param) {
if ($gameParty.inBattle()) {
return null;
} else if (param < 0) {
return $gamePlayer;
} else if (this.isOnCurrentMap()) {
return $gameMap.event(param > 0 ? param : this._eventId);
} else {
return null;
}
};
上記関数から返ってきたデータのx, yのプロパティにアクセスするとそのキャラクターの位置座標が確認できます。
this.character(-1).x
$gameMap._interpreter.character(17).x;
developer toolsから確認する
developer toolsの方では以下のようなコードでプレイヤーの情報は取得できますが、イベントの情報は同様には取得できません。
$gameMap._interpreter.character(-1);
$gameMap変数からevents関数を呼び出すと、現在のマップにあるイベントのリストが取得できるため、そこから位置を取得したいイベントのデータにアクセスします。
$gameMap.events()
イベントID001のX座標を取得る場合は以下のようなコードで取得できます。
$gameMap.events()[0].x