ゲーム制作

【RPGツクールMV】指定した範囲からランダムな数値を取得するスクリプト

【RPGツクールMV】指定した範囲からランダムな数値を取得するスクリプト ゲーム制作
スポンサーリンク
ゴス丸
ゴス丸

5〜10のように、指定した範囲からランダムな数値を取得するスクリプトはあるの?

ドラ男
ドラ男

あるぞ。Math.randomInt() を使えば、

最小値と最大値を指定して、

範囲内の整数をランダムに取得できるぞ。

RPGツクールMVでは、スクリプトを使用することで、指定した範囲からランダムな数値を取得できます。

この記事では、1〜10や5〜15など、指定した範囲内の整数を取得する方法を解説します。

スポンサーリンク

1. 指定した範囲からランダムな数値を取得する

最小値と最大値を指定して乱数を取得する場合は、次の書き方を使用します。

Math.randomInt(最大値 - 最小値 + 1) + 最小値;

この式では、指定した最小値から最大値までの整数をランダムに取得できます。

例えば、1〜10の整数を取得する場合は、次のように記述します。

Math.randomInt(10 - 1 + 1) + 1;

これを整理すると、次のようになります。

Math.randomInt(10) + 1;

このスクリプトでは、1〜10のいずれかの整数を取得できます。

取得した数値をゲーム変数に代入する

取得した乱数を変数10に代入する場合は、次のように記述します。

$gameVariables.setValue(10, Math.randomInt(10) + 1);

このスクリプトを実行すると、変数10に1〜10のいずれかの整数が代入されます。

2. 5〜15など、別の範囲を指定する

取得したい範囲に合わせて、最小値と最大値を変更することもできます。

例えば、5〜15の整数を取得する場合は、次のように記述します。

$gameVariables.setValue(10, Math.randomInt(15 - 5 + 1) + 5);

このスクリプトでは、変数10に5〜15のいずれかの整数が代入されます。

範囲ごとの書き方をまとめると、次のとおりです。

取得したい範囲 スクリプト
1〜10 Math.randomInt(10) + 1
5〜15 Math.randomInt(11) + 5
10〜20 Math.randomInt(11) + 10
1〜100 Math.randomInt(100) + 1
-5〜5 Math.randomInt(11) - 5

最小値と最大値を指定することで、さまざまな範囲の乱数を取得できます。

3. ゲーム変数で指定した範囲から乱数を取得する

最小値と最大値をゲーム変数で管理することもできます。

例えば、次のように変数を使用します。

  • 変数10:最小値
  • 変数11:最大値
  • 変数12:取得した乱数

変数10に5、変数11に15が代入されている場合、次のスクリプトを使用します。

$gameVariables.setValue(
    12,
    Math.randomInt(
        $gameVariables.value(11) -
        $gameVariables.value(10) + 1
    ) + $gameVariables.value(10)
);

このスクリプトでは、変数10の値から変数11の値までの整数をランダムに取得し、その結果を変数12に代入します。

例えば、変数10が5、変数11が15の場合、変数12には5〜15のいずれかの整数が代入されます。

最小値や最大値をゲーム中に変更すれば、それに合わせて取得する乱数の範囲も変更できます。

4. 使用する際の注意点

指定した範囲から乱数を取得する場合は、次の点に注意してください。

  • Math.randomInt() では、指定した数値そのものは取得範囲に含まれません。
  • 最大値も取得できるようにするには、最大値 - 最小値 + 1 と指定します。
  • 今回紹介した方法で取得できるのは整数です。
  • ゲーム変数で範囲を指定する場合は、最小値が最大値を超えないようにしてください。

以上が、指定した範囲からランダムな数値を取得する方法です。

ダメージや回復量に幅を持たせたい場合や、ランダムなイベントを発生させたい場合などに活用できます。

コメント