【问题标题】:Complex depth sorting issue based on MC location基于 MC 位置的复杂深度排序问题
【发布时间】:2011-12-01 13:39:29
【问题描述】:

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

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

这是目前的项目:

http://clearlytrained.com/depth/

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

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

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

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

【问题讨论】:

    标签: arrays actionscript-3 sorting depth


    【解决方案1】:

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

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

    【讨论】:

    • 我们想到了这一点 - 问题是一些盒子可能是 3 个网格空间宽 - 所以 3x 宽的盒子和它上面的 1x1 宽的盒子都会注册为具有相同的 X 位置 -其次,我们根据 X 值进入另一列(这是要检查的第一个条件),我们已经搞砸了,并在 3 倍宽的盒子上方放置了一些东西。所以,深度对于堆叠在彼此顶部的盒子来说效果很好 - 但我们已经或多或少地工作了,并没有解决问题。这就是我认为我们需要一些如何检查所有其他内容的地方.. 叹息
    • 嗯。是的,我想我明白你的意思了。如果您要设置它们占据的瓷砖的绘制顺序,从右上角开始,并以“同心”图案向外延伸,那会怎样?像这样:dl.dropbox.com/u/340238/… 这可能不是最佳的,但我目前想不出其他方法。数字是相反的抽奖顺序。例如,1 高于一切。您还必须记住哪些框已被“使用”(在图块中找到),因此您不必添加两次。
    • 谢谢 - 但同样的问题会发生 - 如果 1 从左下角开始,那么我们从那里同心,最后一个网格空间,比如数字 4,将被设置在最后.. 如果 4在底部,它的深度会高于它上面的一个框 - 我们尝试将它与循环的 x/y 位置合并,但遇到了同样的问题。有趣的是,看到这个问题是多么容易,但我们可以'不要将其转换为函数/代码!
    • 该死的,是的,我发现了一些它不能正常工作的情况。唔。好的,下一个想法!对于每个盒子,保留一个列表,列出它应该覆盖哪些相邻的瓷砖。然后,对于每个块,检查其中一个位置是否有块 - 如果有,将测试框插入测试框上方。您需要保留一个包含所有框的数组,其中索引等于要显示的顺序。如果您确保在插入时不移动其他框的相对顺序(例如,通过将其插入到测试的那个上方,但低于该上方的那个),它应该可以工作。我希望。
    猜你喜欢
    • 2017-11-20
    • 1970-01-01
    • 2015-08-25
    • 2020-03-10
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 2023-04-02
    相关资源
    最近更新 更多