等距深度排序问题与大对象

San*_*hex 3 sorting actionscript-3 isometric depth

我目前正在构建一个as3等距游戏,但我在深度排序方面遇到了很多问题.我搜索了一个解决方案,但没有找到任何符合我的问题(矩形对象).

这是我的游戏截图:

在此输入图像描述

如您所见,深度排序在1x1 tile对象之间运行良好.我只是使用他们的x和y坐标(相对于等轴测图)来对它们进行排序.

当我有更大的对象时,问题就出现了,例如2x2或1x4或4x1.

知道如何处理深度排序呢?

Blc*_*ght 8

我不认为可以根据每个对象的单个值对场景进行排序x,y如果它们中的一些可能足够长,一端应该与另一端的深度不同.例如,如果你的照片中的棕色椅子向下移动一个方格(到蓝色椅子和长沙发之间的方格),请考虑如何处理渲染.它会比沙发后面的红色桌子更深,但是需要在沙发上呈现,这需要在桌子的顶部.

我认为有两个简单的解决方案:

  • 仅对大型对象使用一种重叠来设计您的级别.例如,您可以指定对象的深度基于其最近的角,这将要求您避免将事物放在最远的位前面(因为它将在它们的顶部渲染).或者你可以坚持使用你当前的代码(这似乎是使用最远的角落深度)并避免将任何东西放在较近的部分后面.您可能仍然遇到有问题的字符和其他移动物体.如果您对设计非常小心,可能会使麻烦的瓷砖无法使用,但在某些情况下,这可能会限制太多.
  • 将大型物体分解成具有自己深度的较小物体.您可能希望直到1x1件,每件都具有明确的深度.您可以选择将较大的对象保留在代码中作为较小块的不可见容器,或者可以将它们完全删除,无论哪种方式使您更容易加载并启用与各个位的交互.

将较大的物体拆分成1x1大小的碎片也可以很好,因为您可以将它们模块化.也就是说,您可以通过将1x1各个部分组合在一起来构建不同大小的对象.例如,如果您将2x1图像中的表格垂直切成两半,并创建一个1x1适合它们的中间图块,则可以将设计拉伸到3x110x1,取决于重复中间图块的次数.还有很多其他方法可以使平铺图形看起来很好,只需要适量的艺术品.