【发布时间】:2010-04-29 16:54:37
【问题描述】:
我目前正在为 android 创建一个基于图块的游戏。通过 dalvik JVM 使用 java。我为在特定地图中表示对象的决定而烦恼。我应该使用基于 id 的地图(二维整数数组)并将游戏逻辑放在游戏引擎中的单独函数中,还是创建一个对象数组(游戏对象的二维数组)并将游戏逻辑存储在类方法中。我正在考虑对象创建和垃圾收集与可扩展性的成本。
【问题讨论】:
我目前正在为 android 创建一个基于图块的游戏。通过 dalvik JVM 使用 java。我为在特定地图中表示对象的决定而烦恼。我应该使用基于 id 的地图(二维整数数组)并将游戏逻辑放在游戏引擎中的单独函数中,还是创建一个对象数组(游戏对象的二维数组)并将游戏逻辑存储在类方法中。我正在考虑对象创建和垃圾收集与可扩展性的成本。
【问题讨论】:
如果您担心内存分配和释放的成本(对于游戏来说应该如此),请尽可能减少应用程序的动态内存需求。
逻辑附加到哪个类无关紧要;这将由你来定义什么是最简单的。不过,这与内存需求是分开的;我不认为对象中的功能数量对分配性能有太大影响。
对于它的价值,我认为二维整数数组可能是一个好方法,您甚至可以将对象保留为对象;只需制作一个对象数组,当它们需要更改时可以轻松地重用它们,并使其可以标记为“未使用”。那么你就不用担心内存分配器了(由于可能需要从其他应用程序回收资源,它在 Android 上可能会很慢很慢)。
【讨论】: