【发布时间】:2021-10-11 05:45:58
【问题描述】:
我正在制作一个 2.5D 游戏。为了以正确的顺序绘制元素,我想按它们的 Y 值对它们进行排序。
Object[] everyThingObjectArray = new Object[maptiles.length+buildingsArray.length+livingBeingsArray.length+rocksArray.length+projectileArray.length];
for(int i=0;i<everyThingObjectArray.length;i++){
//Sort objects
}
如何比较对象?我可能需要将它们从 Object 类中向下转换才能这样做。他们每个人都需要实现一个比较器吗?
或者在我不知道的等距游戏中是否有另一种处理绘图顺序的方法? 非常感谢您的任何回答!
【问题讨论】:
-
创建一个超级(母)类可能比创建 java.util.Object 更容易。您可以在其中创建 x 和 y 值,然后让每个对象都继承该类;例如。 ParentObject,并且可以在那里创建一个比较器或“手动”进行,因为默认情况下每个继承的对象都将具有 x 和 y 坐标
-
不仅“更容易”,而且更好:您看,该数组中的所有对象至少共享一个属性:它们可以“绘制”。良好的 OOP 建议您创建有用的抽象(也称为类)来表达此类事物。就像一个基类(或者接口)
Drawable。说真的:Java 是一种 OO 语言。使用 OO 概念,否则您很快就会陷入混乱。