Interpreterの役割備忘録

ツクる上でのちょっとした小ネタや裏ワザなどを紹介してみましょう。
名無し蛙
記事: 302
登録日時: 2015年11月23日(月) 02:46

Interpreterの役割備忘録

投稿記事by 名無し蛙 » 2016年6月18日(土) 10:42

一応、自分用に。

ツクール用語で言うところの「イベント」はマップイベント、バトルイベント、コモンイベントの三種類が存在します。
これらはあくまでも設定データであり単独では実行能力を持ちません。
インタプリタというオブジェクトにイベントリストを渡す事で初めて「イベントが実行される」状態になります。
イベントの起動方法によって使用するインタプリタは全く異なるので忘れない内に書き残しておきます。

①マップイベント(並列処理以外)の場合
Game_Mapが持つ_interpreterを利用します。

②マップイベント(並列処理)の場合
Game_Eventが持つ_interpreterを利用します。

③コモンイベント(並列処理)の場合
Game_CommonEventが持つ_interpreterを利用します。

④バトルイベントの場合
Game_Troopが持つ_interpreterを利用します。

⑤イベントコマンド「コモンイベント」の場合
Game_Interpreterが持つ_childInterpreterを利用します。

⑥使用効果「コモンイベント」の場合
Game_Tempが持つreserveCommonEventにコモンイベントIDが予約され
戦闘中の場合Game_Troopの、非戦闘中の場合はGame_Mapの_interpreterを利用します。

一つのインタプリタが動かせるイベントは原則として1つのみです。
主に使用しているのは①Game_Mapと④Game_Troopのインタプリタです。
②③並列処理をする場合や⑤割り込み処理をする場合は必要に応じてインタプリタを増設しています。
⑥は$gameTemp.reserveCommonEvent(コモンイベントID);だけでイベントを起動出来るので重宝します。
既にインタプリタ使用中の場合は実行終了するまで待機します。
仮に自動実行トリガーでインタプリタを占有している場合でも実行終了したタイミングで予約チェックが入る為割り込みます。

“MV:小ネタ・TIPS・講座” へ戻る