android - Libgdx 游戏在玩了一段时间后关闭

标签 android libgdx

我使用 Libgdx 开发了一款 Android 游戏。它就像一只飞扬的小鸟。 我有一个屏幕,有 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 分钟而没有完成我的游戏过程时,游戏渲染速度变慢,直到游戏突然关闭。我不知道为什么会这样。我认为这是一个内存问题,但我不知道原因,因为当玩家撞墙并重新开始游戏时,我正在处理所有阶段的所有资源。 发生这种情况的任何原因?

最佳答案

你的 Assets 管理肯定有问题 - 你应该监控你的应用程序的 RAM 使用情况 - 我很确定它在一段时间后很重要。

您应该始终处置您的 Assets - 查看list of entities you have to dispose .

事实上你能做的最好的就是使用AssetManager - 它是一个特殊的类,将处理加载/处理的事情。

根据我的经验 - 如果没有必要,请不要处理 Assets - 如果你必须在一秒钟后加载它,为什么要处理纹理? 这段时间纹理发生了什么变化?你应该

  • 重置 body 位置
  • 使用点数等重置您的字段...

但不处置 Assets - 在显示方法中加载它们一次(使用 AssetManager ;))并且在重置关卡时不关心它们。

关于android - Libgdx 游戏在玩了一段时间后关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34314926/

相关文章:

android - 如何在 android 中设置摄像头视频捕获的帧速率...?

java - 如何旋转Android设备相机预览(libgdx)

android - 使用 LibGdx 创建 Facebook 游戏请求

button - libgdx 中的关闭按钮事件

java - 用 "Enter"分割字符串

android - 如何将 C++ 源代码解析为 obj?

Android - 一个应用程序中的两个 map

android - Android手机之间发送短信的简单方法

java - Material 上的纹理在 y 轴上翻转,但在 Actor 上则不然

java - 为什么我的 LibGdx 游戏玩了几分钟后就黑了?