问题是当我的游戏被隐藏时,恢复时会有延迟。每次恢复游戏都需要更长的时间。这种情况发生在任何屏幕集上,包括加载资产的启动屏幕。当游戏恢复到游戏屏幕、启动屏幕或菜单屏幕时,延迟并没有区别。这意味着加载大量资产没有问题。我测试了另一个名为"割断绳索2"的游戏,并没有这样的延迟,游戏立即恢复。
我想补充一点,当我第一次启动应用程序时,并没有这样的延迟,它会直接跳到启动屏幕。此外,当我按下后退按钮时,它会重新启动整个应用程序,而且不会有延迟。这意味着当应用程序恢复时只有一个延迟,而当应用程序第一次启动或重新启动时根本没有延迟。
更新:
我的问题与下面链接中发布的问题完全相同。问题并没有在那里得到解决。http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=11433&p=51515&hilit=恢复+慢速#p51515
所以问题是,当我的游戏恢复时,这被称为:
assetManager.finishLoading();
我没有把那个代码放在resume()中。从上面的链接中,我看到它是自动调用的。当你按下平板电脑上的"后退按钮",然后继续游戏时,启动应用程序需要时间。如果你按下"锁定按钮",然后你继续游戏,它会立即启动游戏,但它会冻结。因此,根据按下的按钮,有两种不同的行为。我更喜欢立即启动游戏,而不是冻结,而是播放我的加载屏幕。有办法做到这一点吗?
这个问题的解决方案是调用
Texture.setAssetManager(manager);
这样,当游戏恢复时,AssetManager.finishLoading()将不会被自动调用。因此,它不会重新加载任何资产。AssetManager更新必须手动调用。