0

我需要帮助来拯救一个涉及一些极端深度管理的项目。我们没主意了!

该项目涉及堆叠各种尺寸的盒子,每个盒子都是等距的 - 这就是深度发挥作用的地方(我们需要在那个盒子前面编织这个盒子,但是在两个盒子的顶部和另一个盒子下面,等等 - 任何事情都会发生!)

这是目前的项目:

http://clearlytrained.com/depth/

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

我们当前排序深度的方式是扫描网格数组,它存储屏幕上每个框的名称,根据我们扫描行和列的方向,我们得到一个顺序,然后设置每个框的深度。问题是即使一个盒子可能占用 6 个网格空间,我们也不会设置深度 6 次——我们只在第一次找到它在数组中的实例名称时设置它——所以如果我们扫过网格从下到上,从左到右,一个物理上位于另一个盒子下方的盒子,但更靠右总是会有更高的深度。不好!

我能看到解决此问题的唯一方法是找出先 X 然后 Y 值的某种框与框比较,设置某种双循环/if statemenet 条件,或多或少,以编程方式手动放置每个框每次我们移动或放置一个新盒子时的深度。因此,复杂性从按盒子实例名称的顺序设置深度,到将这个盒子与其他所有盒子进行比较,然后将其他所有盒子与其他所有盒子进行比较,最后得出我们需要堆叠它们的深度的真正顺序。在某些情况下,我们可能会从左到右,然后从下到上,然后从左到右——没有平滑的模式。

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

4

1 回答 1

0

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

按 X 排序,如果 X 相同,则按 Y 排序。这应该可以解决,除非我遗漏了一些明显的东西。

于 2011-10-05T15:19:59.233 回答