我正在开发一款适用于 Android 的大炮游戏,它需要程序生成关卡。当玩家在空中飞行时,新的部分会被添加到关卡的末尾,以使其无限期地进行下去。随着这些部分的添加,玩家已经通过的部分被删除。问题是创建一个部分通常会导致 GC_FOR_ALLOC,它会暂停游戏大约 30 毫秒并导致明显的延迟。
可用内存保持相当一致,因为对象被删除而其他对象被添加,因此似乎没有内存泄漏。我使用的引擎是来自 iOS 的 cocos2D-android-1 端口。
我看到了许多类似“在游戏运行时不要初始化事物”的解决方案,但关卡生成的本质要求这样做,因为无法在游戏开始时就创建无限长度的关卡。
谢谢你的帮助!