我最近一直在寻找以程序方式生成的游戏地形。我看到Perlin噪音对此有用,因此我尝试了一下。到目前为止,地形产生得非常漂亮。但是,每当我多次运行该程序时,地形都是完全相同的。有什么方法可以随机化产生的Perlin噪声吗?
码:
from opensimplex import OpenSimplex
import random
from time import time
height = 40
width = height
scale = height / 10
value = [[0 for x in range(width)] for y in range(height)]
gen = OpenSimplex()
def noise(nx, ny):
# Rescale from -1.0:+1.0 to 0.0:1.0
return gen.noise2d(nx, ny) / 2.0 + 0.5
def printBiome(y, x):
if value[y][x] <= 2:
print('O', end = " ")
elif value[y][x] >= 8:
print('M', end = " ")
else:
print('L', end = " ")
for y in range(height):
for x in range(width):
nx = x/width - 0.5
ny = y/height - 0.5
value[y][x] = 10 * noise(1 * scale * nx, 1 * scale * ny) + 0.5 * noise(2 * scale * nx, 2 * scale* ny) + 0.25 * noise(4 * scale * nx, 4 * scale * ny)
for y in range(height):
for x in range(width):
printBiome(y, x)
print()
最佳答案
OpenSimplex类defaults to using seed=0
。要生成其他地形,请输入其他种子值:
import uuid
# http://stackoverflow.com/a/3530326/190597
seed = uuid.uuid1().int>>64
gen = OpenSimplex(seed=seed)
关于python - 用于Perlin噪声的Python随机种子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40952572/