我目前正在构建as3等距游戏,但我在深度排序方面遇到了很多问题。我已经搜索了一个解决方案,但没有发现任何与我的问题相符的东西(矩形对象)。
以下是我游戏的截图:
正如您所看到的,深度排序在1x1 tile对象之间运行良好。我只是使用他们的x和y坐标(相对于等轴测图)来对它们进行排序。
当我有更大的物体时会出现问题,例如2x2或1x4或4x1。
知道如何处理深度排序呢?
答案 0 :(得分:8)
我不认为可以根据每个对象的单个x
,y
值对场景进行排序,如果其中一些可能足够长,一端应该是不同的深度比另一个。例如,如果你的照片中的棕色椅子向下移动一个方格(到蓝色椅子和长沙发之间的方格),请考虑如何处理渲染。它会比沙发后面的红色桌子更深,但是需要在沙发上呈现,这需要在桌子的顶部。
我认为有两个简单的解决方案:
将较大的对象拆分为1x1
大小的块也可以很好,因为您可以将它们模块化。也就是说,您可以通过将1x1
个部分组合在一起来构建不同大小的对象。例如,如果您将图片中的2x1
表格垂直缩小一半,并创建了适合它们的1x1
中间图块,则可以将设计延伸到3x1
或{ {1}},取决于重复中间图块的次数。还有很多其他方法可以使平铺图形看起来很好,只需要适量的艺术作品。
答案 1 :(得分:2)
Ultima在线仿真器(特别是POL,尽管可能还有其他人)通过实现和使用“多”概念来实现这一目标 - 一个由切割的大图形组成的单个对象。这些切割图形使得它们的精灵在iso网格边界的左角和右角点垂直分割。
其他考虑因素: - 渲染'多'件从上到下排序屏幕-Y轴。 - 'multi'的南部(即屏幕左下角)组件成为锚定瓦片位置(在沙发的情况下,最左边的部分)。 - 考虑每个地图位置也可以保持自己的垂直对象堆栈;通过屏幕偏移每个对象的渲染-Y模拟高度/高度,这些必须从下到上排序(例如,从最低海拔到最高海拔)。
祝你好运!