2013-02-16 32 views
0

我需要建立游戏地图的建议。我需要在地图上创建1400个空间。我在想象每个空间将会是10种不同的尺寸之一 - 例如,他们将会是10个尺寸为10的尺寸,40个尺寸为9的尺寸等等,其中最小的几百个大小(这是数据驱动)。中心也会有一个中立的空间(可能比所有其他空间都大)。我想随机将这些区域放置在游戏空间中,但不应该有重叠,并且它们之间没有空间。总空间是否为矩形并不重要。我真的很喜欢this effort,虽然它非常出色,但它引导我研究voronoi tesselations并找到一个我有点理解的javascript implementation,但我看到的所有示例都使用随机点作为起点,我正在寻找更多自定义结果,如上所述,所以这可能不是要走的路。 ---无论如何,我愿意接受任何建议。请注意,我是一名设计师而不是编码员,但是我编写了自己的原型,因此有任何建议。在游戏地图上创建非均匀空间

回答

0

这似乎与Knapsack Problem类似,如果我理解正确。但是,不是优化,你只是在寻找一个单一的解决方案。实际上,这是一个相当难以解决的问题,无论是在时间复杂度方面,还是在合理的时间内(即在合理的时间内完成)都可以工作。 This是一篇有趣的文章(虽然他涉及优化) - 通过一些工作,您可以提供一个足够好的算法。

0

如果我理解正确,你想实现的是所谓的路径导向细分树或quadtree。该算法的具体特点是递归地将矩形二维空间划分为称为象限或四边形的四个较小片段。区域可以是正方形或矩形,或者可以具有任意形状。

如果你需要学习你可以有这个实验在ActionScript中创建一个起点代码一个真实的例子,但是这可以很好地翻译成JavaScript太:http://wonderfl.net/c/fLVs

另一种可能性是Delaunay triangulation与控制点选择手动,因为如果正确理解你不想随机分散点。也许这个链接将有所帮助:http://neoformix.com/2012/DelaunayImages2.html

我希望这些帮助!