打开噪声产生问题(似乎是随机的,我的功能错误吗?)



我正在使用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)

然后将瓷砖添加到精灵组中,并在屏幕上绘制。我敢肯定,有更好的方法可以做到这一点,但似乎应该起作用。阀绘制时用来使瓷砖着色,将其映射在0和1之间,并乘以255。

这是我一直从中获得的图像(尝试不同的种子时我会得到类似的图像):打开单纯噪声gen

这是该图像归一化的,以便所有值> 0.5转到1,所有值小于0.4 to 0 to 0,所有值之间的一切设置为0.5。这样做是为了提取我看不到的任何隐藏梯度,但它所做的就是这样做:在此处输入图像描述

如您所见,它看起来完全随机。我究竟做错了什么??谢谢

opensimplex与浮动的非智能者一起使用。您看到的是一种缩放的噪声版本。您应该决定一个比例变量以轻松解决此问题。大约100个比例可以很好地与您的示例一起工作。随时改变它。

def generate_noise(seed,game):
    scale = 100
    size = int(WIDTH/TILESIZE)
    tmp = OpenSimplex(seed)
    for x in range(size):
        for y in range(size):
        val = (tmp.noise2d(x/scale, y/scale)+1)/2
        Tile(game,x,y,val)

相关内容

  • 没有找到相关文章

最新更新