我创造了一个游戏,我想要创建随机世界,让玩家可以选择通过输入相同的种子再次制作相同的世界...... 那么......我怎么能这样做?它会生成相同的数字集,但每次调用随机函数时都不一样......
我是否必须手动根据种子进行排序功能?
答案 0 :(得分:1)
在GameMaker Studio和GameMaker 8.1中有一个功能:
random_set_seed(seed)
在这里你可以输入你的种子。
然后random(x)
在每场比赛中给出相同的第n个结果。
random(100)
randomize() // This doesn't change rand[0] or rand[1]
random_set_seed(20) // because of this
rand[0]=random(100)
rand[1]=random(100)
答案 1 :(得分:1)
随机函数函数要么使用似乎给出随机数的数学公式,要么只查看已计算的看似随机数的数组并按顺序返回它们。在大多数语言中,有一个函数可以查看计算机的时钟,并将该值用作数学公式的第一个值或伪随机数组中的起始索引。在GameMaker中,您可以使用randomize()
来执行此操作。只有在游戏启动时调用一次,并且每次执行都会得到不同的结果。
如果您想要相反,那就是您希望能够重新生成相同的看似随机的序列,您可以使用random_set_seed(value)
手动设置种子。传递的值必须是数字。然后你可以把这粒种子交给玩家。
因此,如果您想第一次生成随机级别,之后能够重播相同级别,则需要按顺序执行:
randomize
设置随机种子。random_get_seed
。random
等人生成关卡。random_set_seed
并传递种子。警告:通过使用这些功能,您可以信赖GM的随机功能。这些是依赖于平台的,并且功能可能会在更高版本的GM中发生变化。如果您希望种子适用于游戏的所有平台和版本,您可能希望使用自己的随机函数。