我是游戏开发的初学者,想使用tilemaps创建一个自上而下的游戏。我使用Godot作为我的游戏引擎,但一般的C#解决方案是可以的。
我想在tilemap中生成湖泊,但由于我缺乏经验,我无法想出任何可行的想法。以前我尝试过使用Simplex,但由于无法控制湖泊的产卵位置,我决定不使用它。
性能有点重要,但世界将是有限的,而不是程序性的,类似于Terraria。
我对任何在电子游戏中合理的想法都持开放态度。
因此,对于有限的世界大小,我可以为您绘制一个可以尝试的方法。它不是特定于语言的,但你应该能够(轻松地(用C#:做到这一点
- 平铺的世界表示为位图:0=陆地,1=水
- 若要生成湖泊,请将起始瓷砖标记为水,并将其坐标添加到队列中
- 从队列中取消一个点。对于该瓷砖和每个方向,随机决定相邻瓷砖是否也是水。将新添加的磁贴添加到队列中。
- 通过不同方向的不同概率控制湖泊形状
- 通过限制迭代次数或通过将新的水瓷砖的机会减少到距离起点的距离来控制湖泊的大小
- 重复此操作,直到队列为空
让我知道它是如何工作的-我只使用我的心理代码模拟器进行了测试,所以里程可能会有所不同;(如果您在实施该方法时需要帮助,请毫不犹豫地询问。