我一直在弄乱Python https://github.com/caseman/noise中的这个噪波模块,主要是遵循我所能找到的有关程序化2d映射生成主题的指南,例如这个https://medium.com/@yvanscher/playing-with-perlin-noise-generating-realistic-archipelagos-b59f004d8401,我能够制作一些漂亮的地图,但我希望能够像Minecraft生成地形一样一次生成部分地图。如果我生成(0,0)至(255,255),并且玩家向右走得太远,那么我将如何生成(256,0)至(512,255),以便玩家可以继续行走?
noise模块没有大量文档,因此我不得不阅读源代码以尝试解决这一问题,而没有太多运气。
import numpy as np
from noise import pnoise2
from scipy.misc import toimage
shape = (256, 256)
scale = 100.0
octaves = 6
persistence = 0.5
lacunarity = 2.0
world1 = np.zeros(shape)
for i in range(shape[0]):
for j in range(shape[1]):
world1[i][j] = pnoise2(
i/scale,
j/scale,
octaves=octaves,
persistence=persistence,
lacunarity=lacunarity,
repeatx=1024,
repeaty=1024,
base=1)
toimage(world1).show()
这就是我一直在搞的。