我正在尝试在 pygame 中制作基于 2d 图 block 的游戏。我实现了一种算法,可将二维数组中的字符转换为图 block ,其位置源自数组中字符的行和列。例如-
数组-(手动输入“地形”)
这里
现在,我想在列表中生成带有某种噪音的“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']
现在最重要和最棘手的部分是找到好的参数来随机改变世界。例如,您可能希望海拔高度发生或多或少的频繁变化(然后使用例如非均匀随机函数)
关于python - 如何使用噪声生成基于二维图 block 的地形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69793091/