我正在使用Python制作这个2D游戏,我希望有一个无限随机生成的地图,但可以使用种子重新生成。 所以首先我希望能够渲染地图的任何部分而不渲染其他东西,所以如果我想找到坐标(50,100)的平铺类型编号,我应该能够做到这一点,而不必计算任何其他的平铺。我尝试使用不同的噪声函数来生成地图,但我无法在任何实现中缩放“峰和谷”之间的距离。其结果是景观中有太多太小的草和泥土等。
看看下面的“简单”实现,您将如何“扩展”这个?我不是数学家,根本无法弄明白。
def noise(x, y, max):
n=x*331+y*337
n=(n<<13)^n
nn=(n*(n*n*41333 +53307781)+1376312589)&0x7fffffff
return ((1.0-(nn/1073741824.0))+1)/2.0 * max