【发布时间】:2021-11-23 16:52:32
【问题描述】:
我正在尝试制作一款生存游戏,但我遇到了柏林噪音问题。我的程序给了我这个:
但我想要岛屿或河流之类的东西。
这是我的代码:
#SetUp#
import pygame, sys, random
pygame.init()
win = pygame.display.set_mode((800, 600))
pygame.display.set_caption('Isom')
x = 0
y = 0
s = 0
tilel = list()
random.seed(5843)
MAP = [random.randint(0, 1) for _ in range(192)]
#Tiles#
class tile():
grass = pygame.image.load('Sprites/Images/Grass.png')
water = pygame.image.load('Sprites/Images/Water.png')
#Loop#
while True:
for key in pygame.event.get():
if key.type == pygame.QUIT:
pygame.quit()
sys.exit()
#World#
for a in range(12):
for b in range(16):
if MAP[s] == 0:
win.blit((tile.grass), (x, y))
elif MAP[s] == 1:
win.blit((tile.water), (x, y))
x += 50
s += 1
x = 0
y += 50
x = 0
y = 0
s = 0
#Update#
pygame.display.update()
【问题讨论】:
-
似乎您使用的分辨率非常低,因此您的柏林噪声基本上看起来像随机静态。如果您想要岛屿或河流之类的东西,那不是内置于 perlin 噪声中的,因此您必须自己弄清楚或查看其他示例。我想如果你产生了一些 3d 噪音,然后切断低于某个值的所有东西,那会让你得到你的岛屿(你必须玩弄参数,我建议制作一个带有滑块的 GUI 或让你搞砸的东西大约)。至于河流,也许你可以像随机布朗步行一样?老实说,这是非常开放的。
标签: python pygame perlin-noise