gpt4 book ai didi

java - 多类对象渲染顺序

转载 作者:行者123 更新时间:2023-12-01 10:36:53 25 4
gpt4 key购买 nike

我不知道如何通过 libgdx 中的 Y 坐标按顺序渲染多个对象。

我有 3 个类(class),每个 NPC 一个。有一个人类类、一个兽人类和一个玩家类。

为了重新创建深度,我按 Y 从最高到最低对人类列表进行排序,以便在渲染它们时我可以模拟深度。 (顺便说一句,这是一款 2D 游戏)。使用比较器效果很好。

我还为我的 Orc 列表使用了另一个比较器,以便它们也可以按 Y 顺序呈现。

但是我的问题是,当人类和兽人重叠时,由于两个列表是独立排序的,它们显然会破坏深度。

可以以某种方式组合两个列表并将它们排序为一个以按顺序渲染所有 NPC 类型吗?

我无法弄清楚,因为比较器只允许您使用 1 个类。

最佳答案

您可以创建一个共享父类(super class)或一个所有类都实现的接口(interface)。该父类(super class)或接口(interface)需要有一个方法来检索 Y 坐标。

你说这些类中的每一个都是一个 NPC,所以你可以创建一个名为 NPC 的父类(super class)。 :

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 */ }

然后你可以创建一个实现 Comparator<NPC> 的类根据 getY() 比较 NPC .

关于java - 多类对象渲染顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34647219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com