在2D地图中生成海床深度

时间:2017-12-08 15:46:06

标签: c# 2d monogame procedural-generation perlin-noise

我有一个100x100瓷砖的2D瓷砖地图。其中大多数是海瓦和中间的一个岛屿。我希望每个海瓦都有深度值。

我曾考虑使用类似噪音地图的东西来生成地形,然后将其颠倒过来,但我不确定如何将已经存在的土地考虑在内。因为深度较浅,所以越接近陆地。

我必须注意,中间的岛是设计而不是生成布局。

基本上我想要的是生成一个看起来像这样的地图,其中0是平地,其他值是以米为单位的深度。

   Type  ID     VERSION
    A    WXYZ     a
    A    WXYZ     bb
    A    WXYZ      aaa
    A    ABCD     cc
    A    ABCD     qq

如果有人能指出我正确的方向,那就太棒了。

1 个答案:

答案 0 :(得分:1)

使用Perlin Noise并将岛屿附近的值增加到某个因子,如1.2(或降低所有其他值)。

改善了噪音:https://gist.github.com/Flafla2/1a0b9ebef678bbce3215

我建议您添加湍流以获得更好的结果:http://paulbourke.net/fractals/perlin/

然后,考虑到现有的土地,您可以使用现有模型对噪声进行平均(并从中排除一些高于水的值)。