LibGDX切换屏幕时保存进度

如何切换屏幕并仍保存当前游戏的进度? 例如,当你按Tab键时,我有一个额外的屏幕,显示有关播放器的一些信息(属性,统计数据等),但是当你再次切换屏幕以恢复你的游戏时,再次调用show方法而你输了所有…我知道的唯一方法是在你隐藏屏幕以某种格式保存游戏并将其加载到show之前但我非常怀疑这是正确的方法,因为会有一个真正的性能问题当你快速切换屏幕时…我需要一种方法来保持前一个屏幕的数据,而不是每次显示屏幕时都将其初始化。 这也适用于技能树和库存,也需要为整个游戏会话保存。 保存游戏文件格式的归档加载应该只在屏幕更改时进行一次。 有任何想法吗?

我猜答案的答案在于你如何切换屏幕以及如何保持记忆。

如果您创建一个新屏幕,它将在您看到时重新初始化。 如果你改为将它们放在一边,你就可以恢复到任何你所处的状态。

这是我用于屏幕切换的一个示例 ,其中包括一个(janky,写得不好)goBack()函数。 他们关键是保持屏幕,所以从MapScreen转到MenuScreen,我将旧的MapScreen保留在列表中,并在我准备好时返回到它,而不是制作新的屏幕。

如果这不能回答你的问题,你应该展示一下你正在尝试的一个例子。