我正在 pygame 中开发一个基于 2d 瓷砖的游戏,我正在尝试使用噪声图来生成我的地图。
我已经安装了 OpenSimplex 库,那里一切正常。问题是我似乎没有得到平滑的随机梯度,它看起来更像是随机噪声。
这是我用来生成图像的函数:
def generate_noise(seed,game):
size = int(WIDTH/TILESIZE)
tmp = OpenSimplex(seed)
for x in range(size):
for y in range(size):
val = (tmp.noise2d(x,y)+1)/2
Tile(game,x,y,val)
Tile 然后被添加到 sprite 组并在屏幕上绘制。我确信有更好的方法可以做到这一点,但它似乎应该工作。val 用于在绘制瓷砖时对其进行着色,将其映射在 0 和 1 之间并乘以 255。
这是我得到的图像(当我尝试不同的种子时,我得到了相似的图像): open simplex noise gen
这是标准化的图像,因此所有大于 0.5 的值都变为 1,所有小于 0.4 的值都变为 0,介于两者之间的所有值都设置为 0.5。这样做是为了尝试绘制任何我可能看不到的隐藏渐变,但它所做的只是: 在此处输入图像描述
如您所见,它看起来完全随机。我究竟做错了什么??谢谢