我使用Libgdx开发了一款Android游戏。它就像一只Flappy Bird。 我有一个4阶段的屏幕。
gameStage = new GameStage(viewport, true);
hudStage = new HudStage();
menuBeginStage = new MenuBeginStage();
menuEndStage = new MenuEndStage(this);
当玩家点击墙壁时,会触发menuEndStage,此菜单只有一个按钮可以重启游戏。
按下按钮后,我处理每个阶段的每个资源,最后再设置一个新屏幕,以便游戏开始。
mainScreen = new MainScreen(firstGame);
setScreen(mainScreen);
我遇到的问题是,当我在没有完成Android游戏过程的情况下玩10分钟时,游戏会变慢,直到游戏突然关闭。我不知道为什么会这样。我认为这是一个记忆问题,但我不知道原因,因为当玩家撞到墙壁并且游戏再次开始时我处理了所有阶段的所有资源。 可能发生这种情况的任何原因?
答案 0 :(得分:1)
您肯定会遇到资产管理问题 - 您应该监控应用程序的内存使用情况 - 我很确定它在一段时间后仍然很重要。
您应始终处置您的资产 - 请查看list of entities you have to dispose。
事实上,你能做的最好就是使用AssetManager - 它是处理加载/处置事物的特殊类。
根据我的经验 - 如果没有必要,不要处置资产 - 如果你需要在一秒之后加载它,为什么要处理纹理? 在此期间纹理发生了什么变化?你应该
但不处置资产 - 在show方法中加载一次(使用AssetManager;))并在重置级别时不关心它们。