Akashic Engine 逆引きリファレンス

乱数を使う

乱数を使うには g.game.random を利用します。(Math.random() は原則利用しないでください。)

凡例

g.game.random.generate(); // 0 以上 1 未満の数値をランダムに返す

利用例

次のコンテンツは、矩形を格子状に並べるプログラムです。ただし矩形の色は 4 種類の色の中からランダムに選んで決めています

詳細

g.game.random は JavaScript の標準にある Math.random() と同じ機能ですが、Akashic Engine のゲームでは原則 g.game.random を利用してください。

Math.random() を利用すると、その結果は実行環境(ブラウザウィンドウ)ごとに異なるので、同じイベントを与えても同じ状態が再現されなくなってしまいます。g.game.random は一つのゲームプレイ内で全員が同じ乱数シードと乱数生成アルゴリズムを使うように作られているので、この問題がありません。 このことは特にマルチプレイの場合に重要となります。詳細は マルチプレイの基礎 を参照してください。

generate() は実数を返しますが、整数の乱数が必要なことも多いでしょう。0 以上 x 未満の整数は、 generate() を使って次のように生成できます。このコードでは、 generate() の戻り値を x 倍することで「0 以上 x 未満の実数」にし、 そこから Math.floor() で小数点以下を切り捨てて「0 以上 x 未満の整数」にしています。

Math.floor(g.game.random.generate() * x);

関連情報