RPGツクール2000/スイッチ・変数【サイトトップへ戻る】 ■複数の変数から一番大きい変数の値を調べる (更新:2023/06/27) 複数の変数の値から一番大きい数値を検索する方法を紹介します。
■条件分岐型 イベントコマンド:条件分岐を使って1つずつ変数の値を比較していく方法です。 調べる変数の数が少ない時や定期的に並列処理するで常に一番大きい値を調べる時には、 この方法が適しています。 なお、2つの変数が同じ値である場合は、変数番号の小さい方が優先になります。 基本形式は以下の通りです。 ▼基本形式
この基本形式を重ねて複数の変数の値から一番大きい値を探します。 ▼4個の変数の中から調べる
▲トップへ戻る▲ ■加算型 変数の値を別の変数へ代入してから1ずつ加算していき、 指定した値まで最初に達した変数が一番大きい値と判断します。 上記の■条件分岐型では、調べる変数の数が多くなると、 大量の条件分岐を設定する必要がありましたが、 この■加算型の場合は、比較的少ないイベント設定で調べる事ができます。 処理落ちが発生するので、 定期的に並列処理するで常に実行するような使い方はお勧めできません。 下記の設定例では、変数[0001〜0010]の中から一番大きい値を持つ変数を調べます。 実際に加算する処理では、変数[0001〜0010]の値を変数[0011〜0020]に複製して、 複製した変数[0011〜0020]を使って一番大きい値を持つ変数を調べます。
この■加算型を利用して、例えば自作戦闘で主人公と敵キャラの敏捷性を変数に代入し、 「加算して1000になった者から行動を開始する」と言った処理を作る事ができます。 ▲トップへ戻る▲ ■リスト型 一番大きい値を持つ変数番号を、 特定の変数に保存していく(リスト化していく)処理方法です。 設定例では、変数[0101〜0120]の値を調べて、 一番大きい値を持つ変数番号を変数[0201]以降に保存します。 一番大きい値を持つ変数が複数ある場合は… 変数[0201]=108 変数[0202]=114 変数[0203]=117 と言ったように、変数[0201]以降に全ての変数番号が保存されます。 この■リスト型の場合、少ないイベント設定で大量の変数を調べる事ができ、 またループ回数が変数の数だけで済むので、■加算型よりも高速に処理する事ができます。 しかし処理落ちは発生するので、 定期的に並列処理するで常に実行するような使い方はお勧めできません。 この■リスト型のイベント設定では、 イベントコマンド:変数の操作にある「変数〜の番号の変数」を使うため、 正しくイベントを設定しないと、正常に処理する事ができません。 【「変数〜の番号の変数」の説明を見る】 イベント設定を行う際は…
確認しながらイベントを設定してください。 下記の設定例では、変数[0101〜0120]の中から一番大きい変数番号を調べ、 その変数番号を変数[0201]以降に保存します。
処理の最後にある…
なお、50個の変数を調べる処理にする場合は…
一番大きい値の変数が複数あった時に、その中から1つの変数番号を選ぶ場合は、 以下のように設定します。
一番大きい値を持つ変数を調べた結果が… 変数[0201]=108 変数[0202]=114 変数[0203]=117 になった場合は、変数[0007:一番大きい値の変数]には、 「108」「114」「117」のいずれかの値が保存されます。 ▲トップへ戻る▲ ◎関連ページ ●敏捷性順に処理する(自作戦闘用) ●イベントコマンド:変数の操作 ●変数〜の番号の変数 |