【发布时间】:2016-12-21 05:13:08
【问题描述】:
我目前正在为我的基于磁贴的等距引擎开发磁贴编辑器,并且目前正在研究自动平铺功能。
此时,基于行进正方形算法并使用位掩码,我已经能够计算出正确的角资源以放置在图块类型周围。
一段时间以来,我一直在尝试用较低匹配的瓷砖类型包围特定的瓷砖类型。想一想星际争霸编辑器(Staredit)如何自动围绕具有较低匹配资产的图块类型。
请注意staredit 的这张图片,高草比高泥更重要:
例如,我有 3 个按各自高度排序的资产。认为资产 3 代表高墙,而较低的资产将代表较低的墙。这些资产将被放入元数据中。 0 表示元数据中的一个空图块。
(3,2,1)
首先,3 资产将被放置在用户选择的位置的元数据中。
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,0,3,0,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
那么 3 资产将被 2 资产包围
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,2,2,2,0,0,0
0,0,0,2,3,2,0,0,0
0,0,0,2,2,2,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
最后,第 2 项资产将被第 1 项资产包围。最终结果应该是这样的。
0,0,0,0,0,0,0,0,0
0,0,1,1,1,1,1,0,0
0,0,1,2,2,2,1,0,0
0,0,1,2,3,2,1,0,0
0,0,1,2,2,2,1,0,0
0,0,1,1,1,1,1,0,0
0,0,0,0,0,0,0,0,0
在此过程之后,将执行自动平铺算法,以便为每个元数据值计算正确的资产/角点。
另一个例子来自这个 HTML5 应用程序。注意墙壁是最高的资产,其次是草,然后是泥土,最后是水。每个资产都被较低的资产包围。 Marching Squares HTML5 Demo
我研究了洪水填充算法,但它似乎不适用于我想要完成的任务。
如果有人对我应该使用什么算法来完成这项任务有解决方案或任何建议,请随时回答这个问题。
我的引擎使用的语言是 Flash As3。
【问题讨论】:
标签: algorithm actionscript-3 math tiles isometric