お世話になります。
スクリプトを使用し、複数のイベントの向きを戻したいです。
スクリプト:
for(var i = 2; i <= 4; i ++){
$gameMap.event( i ).locate( $dataMap.events[ i ].x , $dataMap.events[ i ].y);
}
これを使うと位置が戻りました。
が、向きが戻りません。
そこで、こちらに書き換えました。
スクリプト:
for(var i = 2; i <= 4; i ++){
$gameMap.event( i ).locate( $dataMap.events[ i ].x , $dataMap.events[ i ].y);
$gameMap.event( i ).setDirection( $dataMap.event[ i ].direction());
}
$gameMap.event( i ).setDirection( value );で向きを設定。
valueで$dataMap.event[ i ].direction()を使用しイベントの初期の向きにしようとしました。
が、なぜかタイプエラー(Type Error ・ cannot read property of undefined)が出てきました。
このエラーの解決法が分からず困っております。
もしよろしければ、ご回答お願い致します。
【解決済み】スクリプトで複数のイベントの向きと位置を戻す方法について
Re: スクリプトで複数のイベントの向きと位置を戻す方法について
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
- Plasma Dark
- 記事: 669
- 登録日時: 2020年2月08日(土) 02:29
- 連絡を取る:
Re: スクリプトで複数のイベントの向きと位置を戻す方法について
確かに $dataMap が持つのは events ですが、イベントの定義そのものが直接向きを持っているわけではありません。
イベントの向きは、最初に有効なページに設定された画像の向きによって初期化されます。 (Game_Event.prototype.setupPageSettings 参照)
初期化された向きは _originalDirection に保持されているので、イベントの向きを元に戻すのであれば
こう書けます。
イベントの向きは、最初に有効なページに設定された画像の向きによって初期化されます。 (Game_Event.prototype.setupPageSettings 参照)
初期化された向きは _originalDirection に保持されているので、イベントの向きを元に戻すのであれば
コード: 全て選択
const event = $gameMap.event(i);
event.setDirection(event._originalDirection);
こう書けます。
Re: スクリプトで複数のイベントの向きと位置を戻す方法について
ご回答ありがとうございます。
こちらですべて、上手く行きました。
ありがとうございます。
ーーーーー
それと、$dataMap.events[ i ].direction()にすると、
「Type Error ・ $dataMap.events[ i ].direction is nof a function」が表示されてました。
RPGツクール、スクリプトリファレンス「442」で向きの取得を見ると"s"無し。
他の「369」などのマップイベントの配列を見ると情報が複数あるので"s"が書かれてる。
なので、$dataMap.eventの"s"無しが正解かと思い込んでました。
https://tkool.jp/mz/plugin/javascript/script_reference/gamedate.pdf
が、そもそも$dataMapには向きの情報が無く、 events で合ってたのですね…。
ーーーーー
いろいろ勉強になりました。
本当にありがとうございます。
こちらですべて、上手く行きました。
コード: 全て選択
for(var i = 2; i <= 4; i ++){
$gameMap.event( i ).locate( $dataMap.events[ i ].x , $dataMap.events[ i ].y);
const event = $gameMap.event(i);
event.setDirection(event._originalDirection);
}
ありがとうございます。
ーーーーー
それと、$dataMap.events[ i ].direction()にすると、
「Type Error ・ $dataMap.events[ i ].direction is nof a function」が表示されてました。
RPGツクール、スクリプトリファレンス「442」で向きの取得を見ると"s"無し。
他の「369」などのマップイベントの配列を見ると情報が複数あるので"s"が書かれてる。
なので、$dataMap.eventの"s"無しが正解かと思い込んでました。
https://tkool.jp/mz/plugin/javascript/script_reference/gamedate.pdf
が、そもそも$dataMapには向きの情報が無く、 events で合ってたのですね…。
ーーーーー
いろいろ勉強になりました。
本当にありがとうございます。