消除(或检测)游戏开发过程中程序噪声中的漏洞



我一直在关注这个页面http://devmag.org.za/2009/04/25/perlin-noise/作为创建我自己的柏林噪音的指南-评论部分指出这是FBM噪音,但这无关紧要。

到目前为止,这工作得很好,这些是经过一些"清理"以尽可能多地去除伪影的结果。http://puu.sh/dayg9/2943aca5ce.png

现在我已经创建了我的噪音,我将把它用作平台游戏的无限地图。但是,正如您所看到的,我的噪音中有一些漏洞。

-

请注意-此噪音适用于2D游戏!

我的问题是 - 我怎样才能填补这些洞,或者阻止玩家在其中生成?尽管谷歌搜索了很多,但还是想得特别努力,但还是找不到答案。

感谢您的时间:)

只需使用基于非欧几里得 http://en.wikipedia.org/wiki/Haversine_formula 的算法,首先查看它们的生成位置,以找到设定间隙大小内的物体数量,如果计数太低,则将玩家移动到不同的生成区域。

为了提高速度,您可以在初始区域生成时计算此值,然后按区域缓存结果以使其易于查询。

有人提到该解决方案与填充算法有很大关系,就像Microsoft Paint中使用的算法一样。

我将继续使用"扫描线填充"算法 - http://en.wikipedia.org/wiki/Flood_fill

最新更新