2012-01-14 81 views
2

可能重复:
Diamond square algorithm如何在C++中编写钻石平方算法?

我试图使用菱形方算法来生成我的2D游戏地形。我发现了很多解释算法的资源,但没有一个真正展示如何在C++中实现它。我正在创建一个基于瓦片的游戏,并希望使用该算法生成随机世界(水,沙,草,山)。我的计划是使用菱形方块算法的值来确定拼贴。防爆。如果该值小于1,则为水。如果价值大于10,山。等

所以基本上我问的是,有没有人有一个C + +的钻石平方算法的例子,我可以看看和调整?

+0

我试着翻译它的作者,这部分工作。我得到的结果像[this](http://imgur.com/0rY5D,eq1bb,Mazbu.8thrV,iCg03,BHbU9,kRRql,9oTVR,ACDdA,McCns)。我很确定我搞砸了。 – rmaes4 2012-01-14 07:06:36

回答

6

您可以找到算法here的工作C++实现(请参阅Noise函数及其辅助函数)。

另请注意,该实现稍微复杂一点,因为它使用双三次插值来防止使用标准双线性插值(请参阅下图中的尖峰)生成的工件菱形方块算法。

enter image description here

免责声明:我这个项目(随意使用下GPLv2许可授权方面的代码)