如何使用噪声生成基于二维图块的地形?
How to use noise to generate 2d tile based terrain?
我正在尝试在 pygame 中制作一个基于 2d 图块的游戏。我已经实现了一种算法,将二维数组中的字符转换为图块,其位置来自数组中字符的行和列。例-
阵列-(手动输入“地形”)
游戏-(数组中的g和s分别对应草和石头。)
这里
现在,我想生成带有某种噪声的列表中的“G”,因此我可以进一步实现它以无限生成。我在这方面看到的一些文档真的很难理解:(。那么我如何使用噪音自动生成地形中的“G”?谢谢!
我建议逐列生成您的世界。我认为这是某种从左到右的平台游戏,这更有意义。
下面是一个小片段,向您展示了这样做的可能的简单逻辑。 S 的数量是固定的,G 可以在每个新步骤中变化 +1/0/-1。最后一行是转换成你的行格式显示:
import random
l = 9 # world height
g = 2 # initial number of G
out = []
for i in range(15):
g += random.randint(-1, 1)
g = max(0, min(g, l))
s = ' '*(l-g-1)+'G'*g+'S'
out.append(s)
worldArray = [''.join(s) for s in zip(*map(list, out))]
示例:
[' ',
' ',
' ',
' ',
' ',
'G G G',
'GG GGG G GGGG',
'GGGGGGG GGGGGGG',
'SSSSSSSSSSSSSSS']
现在最重要和棘手的部分是找到合适的参数来随机改变世界。例如,您可能希望或多或少频繁地改变海拔高度(然后使用例如非均匀随机函数)
我正在尝试在 pygame 中制作一个基于 2d 图块的游戏。我已经实现了一种算法,将二维数组中的字符转换为图块,其位置来自数组中字符的行和列。例-
阵列-(手动输入“地形”)
游戏-(数组中的g和s分别对应草和石头。)
这里
现在,我想生成带有某种噪声的列表中的“G”,因此我可以进一步实现它以无限生成。我在这方面看到的一些文档真的很难理解:(。那么我如何使用噪音自动生成地形中的“G”?谢谢!
我建议逐列生成您的世界。我认为这是某种从左到右的平台游戏,这更有意义。
下面是一个小片段,向您展示了这样做的可能的简单逻辑。 S 的数量是固定的,G 可以在每个新步骤中变化 +1/0/-1。最后一行是转换成你的行格式显示:
import random
l = 9 # world height
g = 2 # initial number of G
out = []
for i in range(15):
g += random.randint(-1, 1)
g = max(0, min(g, l))
s = ' '*(l-g-1)+'G'*g+'S'
out.append(s)
worldArray = [''.join(s) for s in zip(*map(list, out))]
示例:
[' ',
' ',
' ',
' ',
' ',
'G G G',
'GG GGG G GGGG',
'GGGGGGG GGGGGGG',
'SSSSSSSSSSSSSSS']
现在最重要和棘手的部分是找到合适的参数来随机改变世界。例如,您可能希望或多或少频繁地改变海拔高度(然后使用例如非均匀随机函数)