生成(过山车/运输大亨)地形

时间:2013-04-28 08:14:59

标签: c# algorithm terrain vertices

我目前正试图在Rollercoaster Tycoon / Transport Tycoon游戏中产生他们所拥有的地形类型。

此图像显示了我正在尝试实现的地形类型。 Screenshot of Transport Tycoon

我可以得出结论,看起来有13种不同的瓷砖形状。 1(平面)+4(每个方向的斜率)+4(半平,半坡)+4(半平,半坡)= 13个形状。

是否有任何公共算法来生成这种地形,或者我只需要自己编写:)?

1 个答案:

答案 0 :(得分:2)

正方形的类型取决于网格每个顶点的高度,因此您需要的算法是在每个顶点生成高度。在这种情况下的规则(运输大亨)是一个瓦片的四个角最多具有两个步骤的高度差,并且实际上最多两个顶点可以具有两个阶梯差异。 Ť

产生地形的常见方法是通过模拟侵蚀,即从一个随机地形开始,通过平滑和模拟河流等侵蚀它,直到你得到你需要的东西。考虑到TT地形的限制,我怀疑它是如何制作的。除了斜坡的限制外,游戏还要求地形相当平坦。 OpenTTD的标准地形生成似乎是顶点的重复随机加权/降低。

您可以在openttd.org上查看地形生成算法 http://svn.openttd.org/trunk/src/landscape.cpp
(搜索“GenerateLandscape”)。

这个开源版本支持几种生成方法,包括侵蚀(“Terragenesis”)和随机化。