【解決済み】mapIDを指定してマップのデータを参照する方法

返信する
えむぶ
記事: 13
登録日時: 2017年4月01日(土) 15:03

【解決済み】mapIDを指定してマップのデータを参照する方法

投稿記事 by えむぶ »

お世話になります
mapIDを指定してプレイヤーがいないマップのデータを参照できますか?(例 width,height)
$dataMapと$gameMapはプレイヤーがいるマップしか参照できない風に見えます
mapIDを指定する方法があればお教えください
最後に編集したユーザー えむぶ [ 2017年4月15日(土) 14:31 ], 累計 1 回
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: mapIDを指定してマップのデータを参照する方法

投稿記事 by フトコロ »

こんにちは。
$dataMap は、プレイヤーが居るマップのデータを格納するので
任意のマップデータを参照したい場合は、新たにマップデータを読み込む必要があります。

//Map002.json ファイルの内容を、$dataMap2 に読み込むスクリプト
DataManager.loadDataFile('$dataMap2', 'Map002.json')
⇒$dataMap2は、好きなの名前を付けてください。ただ、既存の$data***と被らないようにしてください。
⇒Map002.jsonの 002 がマップの番号です。

このコードを使って、マップID 2 のマップデータを$dataMap2 に読み込むスクリプトはこうなります。

コード: 全て選択

var mapId = 2
var filename = 'Map%1.json'.format(mapId.padZero(3))
DataManager.loadDataFile('$dataMap2', filename)
なお、使い終わったら読み込んだデータは空にするか削除しておいたほうが良いと思います。
//$dataMap2を空にする
$dataMap2 = {}

//$dataMap2を削除する
delete window.$dataMap2
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/bl ... /README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
えむぶ
記事: 13
登録日時: 2017年4月01日(土) 15:03

Re: mapIDを指定してマップのデータを参照する方法

投稿記事 by えむぶ »

フトコロ様
分かりやすくコードを書いていただきありがとうございます
コードを実行して$dataMap2をコンソールに直に打ち込むとmapId2のデータを表示できました
データの読み込みは碓かに成功しています
しかしスクリプトの中で$dataMap2を参照すると値がnullで参照できません
$dataMapとは違う特殊な参照方法が必要ですか?

分かる方よろしくお願いします
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: mapIDを指定してマップのデータを参照する方法

投稿記事 by フトコロ »

えむぶ さんが書きました:しかしスクリプトの中で$dataMap2を参照すると値がnullで参照できません
$dataMapとは違う特殊な参照方法が必要ですか?
データロードは若干時間が掛かりますので、ロードが終わる前に読み込みをしているのだと思います。

下のように、ロードと値参照の間に、ウェイト 1 などをはさむようにすると大丈夫だと思います。

◆スクリプト:var mapId = 2
:     :filename = 'MAP' + ('000' + mapId).slice(-3) + '.json'
:     :DataManager.loadDataFile('$dataMap2', filename)
◆ウェイト:1フレーム
◆スクリプト:console.log($dataMap2)
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/bl ... /README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
えむぶ
記事: 13
登録日時: 2017年4月01日(土) 15:03

Re: mapIDを指定してマップのデータを参照する方法

投稿記事 by えむぶ »

フトコロ様
お教えいただいた通りにウェイトを挟むと参照できました
参照後の削除方法も大変参考になりました
解決までお付き合いいただき誠にありがとうございました
返信する

“MV:質問”に戻る