基于MC位置的复杂深度排序问题

时间:2011-10-05 14:48:21

标签: arrays actionscript-3 sorting depth

我需要帮助拯救一个涉及一些极端深度管理的项目。我们没有想法!

该项目涉及各种尺寸的堆叠盒子,每个盒子都是等距的 - 所以深度在哪里玩(我们需要在盒子前面编织这个盒子,但是在两个盒子的顶部和另一个盒子的下面等等) - 什么都行!)

这是现在的项目:

http://clearlytrained.com/depth/

如果网格空间为绿色,您可以拖动框然后放过网格 - 如果您要将两个网格空间高的框放在一起,然后放在另一个旁边,然后选择一个更宽的框(2x2)并将它放在两个上面(因此两个下方框中的间隙位于您放在顶部的框的中间),您将看到最右下方框的深度现在更高,位于顶部的框上方。我完全理解为什么会发生这种情况,但无论我们如何按顺序扫过网格,这都会在某种程度上以它目前的方式发生。

我们目前正在排序深度的方式是扫过网格数组,网格数组存储屏幕上每个框的名称,根据我们扫描行和列的方向,我们得到一个顺序,然后我们设置每个盒子的深度。问题是即使一个盒子可能占用6个网格空间,我们也不会将深度设置为6次 - 我们只在第一次设置它时才设置它在数组中的实例名称 - 所以如果我们正在扫描网格从底部到顶部,从左到右,一个盒子在物理上位于另一个盒子下面,而在右边的那个盒子总是具有更高的深度。不好!<​​/ p>

我能看到解决这个问题的唯一方法是弄清楚某些方框与第一个X和Y值的比较,为循环/ if状态条件设置某种双重,或多或少,以编程方式设置每次移动或放置一个新盒子时放置每个盒子的深度。因此,复杂性从设置深度按箱实例名称的顺序,到将此框与每个其他框进行比较,然后将每个其他框与每个其他框进行比较,并提出我们需要堆叠其深度的实际顺序。在某些情况下,我们可能会从左到右,然后从下到上,然后从左到右 - 没有平滑的模式。

请使用提供的链接,如果您有任何其他问题或需要更多信息,请告诉我,我很绝望!

1 个答案:

答案 0 :(得分:0)

我会将所有框添加到数组中,并按X和Y值(图块X和Y)对其进行排序。它不是一个大集合,所以你不必担心性能。

按X排序,然后如果X相同,按Y排序。除非我错过了一些明显的东西,否则应该解决它。