如何修改我的 app/game 以便它可以快速加载?
How to modify my app/game so that it can load quickly?
我使用 class 创建了一个简单的游戏,其中 扩展了 SurfaceView 并且 实现了 Runnable 。在游戏中,绘图是在 public void 运行 中完成的。一旦 activity 启动,它就会成为线程的目标。游戏加载时间很长(有时需要 10-15 秒)。以及游戏暂停时(thread.join())和恢复时(thread = new Thread(this); thread.start()) 这需要太多时间。
什么可能使游戏加载缓慢?解决方案是什么?
最常见的原因是资源加载。
I/O 操作非常慢,因此,如果您尝试在实际绘制之前加载所有位图,这可能会在实际开始绘制之前造成明显的延迟。
避免这种情况的一种策略是在实际需要开始使用资产之前预加载它们。许多游戏在所谓的启动画面中执行此操作。另外,不要太快回收你的资产并释放它们正在使用的内存。这意味着您将需要在下次启动时重新加载它们。
总的来说,没有关于如何做到这一点的确切方法 - 在加载时间和内存消耗之间存在不断的权衡。您只需要进行试验并尝试找出最适合您的用例的方法。
一定要分析您的应用程序,使用您的 IDE 检查对象创建和内存分配调用。大多数时候,您可以很容易地查明那里出现问题的原因。
我发现游戏加载缓慢是因为线程一直在 运行ning,没有任何 sleep。因此,只需在 运行 中添加 Thread.sleep(15);
,并处理所有异常,即可解决此问题。谢谢支持
我使用 class 创建了一个简单的游戏,其中 扩展了 SurfaceView 并且 实现了 Runnable 。在游戏中,绘图是在 public void 运行 中完成的。一旦 activity 启动,它就会成为线程的目标。游戏加载时间很长(有时需要 10-15 秒)。以及游戏暂停时(thread.join())和恢复时(thread = new Thread(this); thread.start()) 这需要太多时间。 什么可能使游戏加载缓慢?解决方案是什么?
最常见的原因是资源加载。
I/O 操作非常慢,因此,如果您尝试在实际绘制之前加载所有位图,这可能会在实际开始绘制之前造成明显的延迟。
避免这种情况的一种策略是在实际需要开始使用资产之前预加载它们。许多游戏在所谓的启动画面中执行此操作。另外,不要太快回收你的资产并释放它们正在使用的内存。这意味着您将需要在下次启动时重新加载它们。
总的来说,没有关于如何做到这一点的确切方法 - 在加载时间和内存消耗之间存在不断的权衡。您只需要进行试验并尝试找出最适合您的用例的方法。
一定要分析您的应用程序,使用您的 IDE 检查对象创建和内存分配调用。大多数时候,您可以很容易地查明那里出现问题的原因。
我发现游戏加载缓慢是因为线程一直在 运行ning,没有任何 sleep。因此,只需在 运行 中添加 Thread.sleep(15);
,并处理所有异常,即可解决此问题。谢谢支持