【发布时间】:2015-07-12 15:20:06
【问题描述】:
我正在开发一款游戏,我得到了包含许多对象引用数组的 Main 类。
在主类中,我循环遍历每个数组并更新对象。问题是我必须为每种类型的对象保存一个数组。每种类型都有一个数组很舒服,但是当我有几十种类型时,它会使代码变得丑陋。
我想过要有一个String|Array的HashMap,每个条目都有对象类型名称(String)和数组本身。每个对象都扩展了我创建的一个抽象类,称为 GameObject。我的问题是使用 hashmap 有效率吗? (意味着在每个循环中,Main 类从地图中获取一个数组并遍历它的对象。) 高效是指 HashMap 的“get”方法是否可以减慢速度。
或者也许有更好的解决方案来保存大量不同类型的对象?
我正在使用 LibGDX 将游戏用 Java 开发到 Android。 谢谢!
【问题讨论】:
-
您可以尝试让每个对象扩展一个只有枚举的抽象类,并根据枚举值处理每个对象。
-
忘了说,每个对象都扩展了我创建的一个抽象类,叫做 GameObject。但是,我仍然希望按类型分隔对象。我只是不想处理大量对数组的引用。
-
只需在
GameObject中创建一个枚举字段,并在检查枚举值后更新每个对象? -
HashMap get/put complexity 的可能重复项
-
您可能还想研究实体组件系统。 LibGDX 有自己的,Ashley:github.com/libgdx/ashley
标签: java android arrays libgdx