RPGツクール2000/システム・自作メニュー【サイトトップへ戻る】 ■主人公が次のマスへ移動中かどうかを調べる (更新:2022/04/23) 主人公が次のマスへ移動中かどうかを調べる処理を設定します。
■システムの基本 主人公が次のマスへ移動中であるかどうかは、 乗り物との画面X・画面Yの距離を測って調べます。 RPGツクール2000の1マスは「16ピクセル」であるため、 移動していないキャラ同士のピクセル距離は必ず「16の倍数」になります。 そのため「(主人公の画面位置−乗り物の画面位置)剰余16」を計算した場合、 「0=停止中」「0以外=移動中」と判断する事ができます。 イベント設定は、主人公と小型船との距離で移動しているかどうかを調べますが、 小型船は必ず停止している必要があります。 そのため、小型船に乗っている時には大型船で距離を測るようにします。 主人公と乗り物が別々のマップにあっても、 X座標や画面Xは現在のマップに乗り物が置いてある状態と同じようになるため、 問題無く処理する事ができます。 また作品内に乗り物を設置していない場合でも… マップID=0(存在しないマップ) X座標=0 Y座標=0 の位置に仮置きされるため、問題無く処理する事ができます。 ▲トップへ戻る▲ ■イベントの基本設定 基本設定は以下のようになります。
この場合、マスとマスの間を移動中の場合はスイッチ[0001:移動中]がONになり、 マスの中央にいる場合はOFFになります。 実際にマップイベントに… イベント出現条件:スイッチ[0001:移動中]がON グラフィック:何らかの画像 を設定して、テストプレーを実行し、主人公を移動すると、 マスとマスの間を移動している時だけマップイベントの画像が表示されます。 ▲トップへ戻る▲ ■自作メニューでの活用例 移動中を判断する処理は、主に自作メニューを表示する時に使います。 もしも主人公が次のマスへ移動している途中である場合は、 移動し終えるまでは自作メニューの表示処理を一時停止します。 以下は基本的な設定例です。
▼2つのコモンイベントが設定されている理由 主人公が次のマスへ移動している途中でShiftキーを押して自作メニューを表示した場合、 次のマスへ移動し終えてから自作メニューが表示されますが、 次のマスに「主人公から触れたとき」のマップイベントがあった場合は、 もしも定期的に並列処理するの設定だけでは、 マップイベントの処理と自作メニューの処理が同時に実行してしまい、 マップイベントの処理を邪魔してしまう可能性があります。 しかし自動的に始まるを実行して自作メニューを表示させた場合は、 自動的に始まると主人公から触れたときが同時に実行できない仕様であるため、 マップイベントの主人公から触れたときが実行している時には、 自動的に始まるは実行しなくなり、マップイベントの処理を邪魔しないで済みます。 但し主人公から触れたときのマップイベントに場所移動だけを設定した場合は、 場所移動を実行して場所移動が終了すると、移動先で自作メニューが表示されてしまいます。 この問題を防ぐため、 自動的に始まるが実行する前後のマップID、X座標、Y座標を調べて、 どれか1つでも変化があった場合は「場所移動を実行した」と判断して、 自作メニューが表示されないようにしています。 なお、自作メニューを定期的に並列処理するではなく自動的に始まるで処理する事で、 主人公を一時停止するような処理が要らなくなります。 また他のイベント(自動的に始まるやイベントから触れたときなど)が、 自作メニューを表示している時に誤って実行しないようにする事もできます。 ▲トップへ戻る▲ ◎関連ページ ●自作メニューの基礎 ●パーティー編成(マップ移動型) ●パーティー編成(フィールド表示型) ●顔パーティー編成 ●自作アイテムメニューの基礎 |