ページ 11

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

Posted: 2017年8月07日(月) 16:22
by ま~くん
いつもお世話になってます。

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

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

よろしくお願いします。

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

Posted: 2017年8月07日(月) 16:44
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: 現在のマップと座標を取得するスクリプトについて

Posted: 2017年8月07日(月) 19:57
by ま~くん
しぐれんさん、丁寧な解説ありがとうございます。

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

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