0

我四处寻找,但没有找到可靠的答案。我正在用 AS3 构建游戏。我为我的游戏生成随机地图(2D 图块)没有问题,它基本上由随机数组成。如何始终将种子参数传递给我的函数以获得完全相同的结果?

function generate(__xt:uint, __yt:uint){
  var rnd:int;
  for (var i:uint=0; i < __xt; i++){
     for(var j:uint=0; j < __yt; j++){
         rnd = Math.round(Math.random());
         ...
     }   
  }
}
4

2 回答 2

2

YesMath.random()不支持播种,如果需要,您必须实现自己的PRNG. 看看这个答案Seedable JavaScript random number generator for the JS,很容易将答案之一移植到as3.

于 2014-03-12T13:33:08.147 回答
1

Grant Skinner为生成随机数开发了很棒的库,我建议使用它,而不是 Math.random()

...我决定建立一个类来根据种子数生成随机数。这对于统计、测试和游戏开发(例如同步或重玩游戏)等其他用途也很方便。这很简单,因为 Flash Player 已经有了一种机制,可以根据隐藏在其 API 中的种子——BitmapData.noise() 生成一系列随机数。

于 2014-03-12T13:33:41.163 回答