【问题标题】:Java: Y-Sort Algorithm | Sorting an Array of different object types [duplicate]Java:Y 排序算法 |对不同对象类型的数组进行排序[重复]
【发布时间】: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 概念,否则您很快就会陷入混乱。

标签: java android


【解决方案1】:

Arrays.sort 可用于通过在参数中使用比较器的选项进行排序。 或者您可以实现任何标准排序算法,例如合并。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 2023-03-26
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多