我目前正在尝试生成类似过山车大亨/运输大亨游戏中的地形类型。
这张图片显示了我想要实现的地形类型。 Screenshot of Transport Tycoon
据我所知,似乎有 13 种不同的图 block 形状。 1(平坦)+ 4(每个方向的坡度)+ 4(半平坦,半坡向上)+ 4(半平坦,半坡向下)= 13 个形状。
是否有任何公共(public)算法来生成这种地形,或者我只需要自己编写:)?
最佳答案
正方形的类型取决于网格每个顶点的高度,因此您需要的是一种生成每个顶点高度的算法。本例(运输大亨)的规则是,一 block 瓷砖的四个角最多有两步的高度差,而实际上两个顶点最多可以有两步的高度差。
生成地形的常见方法是通过模拟侵 eclipse ,也就是说,从随机地形开始,通过平滑和模拟河流等来侵 eclipse 它,直到得到你需要的东西。考虑到 TT 地形的限制,我怀疑它是如何制作的。除了坡度的限制外,游戏还要求地形相当平坦。 OpenTTD 的标准地形生成似乎是顶点的重复随机升高/降低。
您可以在 openttd.org 查看地形生成算法
http://svn.openttd.org/trunk/src/landscape.cpp
(搜索“GenerateLandscape”)。
这个开源版本支持多种生成方法,包括基于侵 eclipse (“Terragenesis”)和随机生成方法。
关于c# - (过山车/运输大亨)地形的生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16260966/