【解決済み】現在のマップのマップIDと座標を取得するスクリプトについて

返信する
ま~くん

【解決済み】現在のマップのマップIDと座標を取得するスクリプトについて

投稿記事 by ま~くん »

いつもお世話になってます。

【解決済み】座標取得スクリプトについて
http://tm.yumineko.com/viewtopic.php?f= ... 7%E6%A8%99

上記のトピックを参考に現在のマップと座標を取得するプラグインを作ろうとしています。
ただ、イベントエディターから新規にスクリプトを作るとうまく情報が取得できそうなのですが、
これをプラグインで作成して実行しようとすると、
「TypeError undefined is not a function」
って出て止まってしまいます。
イベントエディターとプラグインで実装するときは書き方がちがうのでしょうか?
プラグインで実装するときのコードを教えてほしいです。

よろしくお願いします。
最後に編集したユーザー ま~くん [ 2017年8月24日(木) 19:26 ], 累計 3 回
アバター
しぐれん
記事: 975
登録日時: 2017年3月28日(火) 22:22
連絡する:

Re: 現在のマップと座標を取得するスクリプトを教えて欲しいにゃ~

投稿記事 by しぐれん »

イベントコマンドのスクリプトとプラグインだと書き方が異なるニャ。
イベントコマンド「スクリプト」で実行したときのthisはGame_Interpreterクラスなのニャ。
まず、以下の処理を見るのニャ。
(rpg_objects.js)

コード: 全て選択

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;
    }
};
this.character(-1)とやると、この関数が呼び出されてGame_Characterの派生クラスを取得するようになっているのニャ。
ニャので、プレイヤーのオブジェクトを手動で捕まえるのニャ。
プレイヤーの座標をとりたければ、$gamePlayer.xでx座標が取れるニャ。
現在、プラグイン依頼はお休み中です。
ま~くん

Re: 現在のマップと座標を取得するスクリプトについて

投稿記事 by ま~くん »

しぐれんさん、丁寧な解説ありがとうございます。

$gamePlayer.xでx座標、$gamePlayer.yでy座標を取得することができました。
あと、$gameMap.mapId()でいいのでしょうか?
現在のマップのマップIDも取得できそうです。

まだまだjsフォルダのコードを理解できていませんが、少しずつ覚えていこうと思います。
丁寧に教えてくれてありがとございました。
また機会がありましたらよろしくお願いします。
返信する

“MV:質問”に戻る