3

私は現在、スクロール可能な画面を備えたゲームに取り組んでおり、ゲームに障害物を配置するための簡単なアルゴリズムを見つける必要があります。私は、gameSpeed時間の経過とともに増加する (1 から 12 まで、1/60 秒ごとに 0.005 ずつ増加する) と、200 から 600 (int) の間の使用可能な位置の範囲を持っています。速度が大きいほど小さい数値を受け取る可能性を高めたいのですが、14時間連続のコーディングであり、使用可能で複雑すぎないものを思い付くことができません。レンダリング ループに時間がかかりすぎないように、数学関数とランダム関数を最小限に抑えたいと思います。どんな助けでも大歓迎です!

4

3 に答える 3

5

乱数を平方または平方根して、密度を一方向にシフトできます。Math.random()*Math.random()大きい数値 (1 に近い) よりも小さい数値 (0 に近い) を生成する確率が高くなります。

あなたの式は次のようになります

var position = Math.pow(Math.random(), gameSpeed / 3) * 400 + 200;
于 2013-09-18T23:07:19.193 に答える
2

私が考えることができる最も簡単な答えは、たとえば、[1,5] (両方を含む) の間でランダムを生成するために、より高い数値と比較してより低い数値を持つ配列を作成することです。したがって、配列は次のようになります[1,1,1,1,1,2,2,2,2,3,3,3,4,4,5]

そして、その配列から要素をランダムに選択すると、高い数値よりも低い数値を選択する可能性が高くなります。

于 2013-09-18T23:10:58.307 に答える