【问题标题】:Procedural functions with seed (like road generator)带有种子的程序功能(如道路生成器)
【发布时间】:2014-03-12 13:01:22
【问题描述】:

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

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());
         ...
     }   
  }
}

【问题讨论】:

  • 您应该每次为 Math.random() 函数播种相同的值

标签: actionscript-3 flash procedural-programming procedural-generation


【解决方案1】:

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

【讨论】:

  • 感谢您的链接:),+1
【解决方案2】:

Grant Skinner developed great library 用于生成随机数,我建议use it,而不是 Math.random()

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

【讨论】:

  • 谢谢,非常有用,+1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-08
  • 2017-12-27
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 2014-12-22
  • 1970-01-01
相关资源
最近更新 更多