多个 class 对象渲染顺序
Multiple class object render order
我不知道如何在 libgdx 中按 Y 坐标顺序渲染多个对象。
我有 3 个 classes,每个 NPC 一个。有一个人类 class、一个兽人 class 和一个玩家 class。
为了重建深度,我按 Y 从高到低对我的人物列表进行了排序,这样当他们被渲染时我可以模拟深度。 (顺便说一句,这是一款 2D 游戏)。使用比较器效果很好。
我还为我的 Orc 列表使用了另一个比较器,这样它们也可以按 Y 顺序呈现。
但是我的问题是,当人类和兽人重叠时,由于两个列表是独立排序的,他们显然会破坏深度。
能否以某种方式合并两个列表并将它们排序为一个以按顺序呈现所有 NPC 类型?
我搞不懂,因为比较器只允许你使用 1 class。
您可以制作一个共享的超级class 或您的所有classes 实现的接口。
那个 superclass 或接口需要有一个方法来检索 Y 坐标。
你说这class个都是NPC,所以你可以做一个超级class叫NPC
:
public abstract class NPC {
public abstract int getY();
}
public class Human extends NPC { /* ... has a getY() method */ }
public class Orc extends NPC { /* ... has a getY() method */ }
然后你可以制作一个 class 来实现 Comparator<NPC>
,根据 getY()
.
比较 NPC
我不知道如何在 libgdx 中按 Y 坐标顺序渲染多个对象。
我有 3 个 classes,每个 NPC 一个。有一个人类 class、一个兽人 class 和一个玩家 class。
为了重建深度,我按 Y 从高到低对我的人物列表进行了排序,这样当他们被渲染时我可以模拟深度。 (顺便说一句,这是一款 2D 游戏)。使用比较器效果很好。
我还为我的 Orc 列表使用了另一个比较器,这样它们也可以按 Y 顺序呈现。
但是我的问题是,当人类和兽人重叠时,由于两个列表是独立排序的,他们显然会破坏深度。
能否以某种方式合并两个列表并将它们排序为一个以按顺序呈现所有 NPC 类型?
我搞不懂,因为比较器只允许你使用 1 class。
您可以制作一个共享的超级class 或您的所有classes 实现的接口。 那个 superclass 或接口需要有一个方法来检索 Y 坐标。
你说这class个都是NPC,所以你可以做一个超级class叫NPC
:
public abstract class NPC {
public abstract int getY();
}
public class Human extends NPC { /* ... has a getY() method */ }
public class Orc extends NPC { /* ... has a getY() method */ }
然后你可以制作一个 class 来实现 Comparator<NPC>
,根据 getY()
.