这是我的情况。我有三种不同类型的屏幕:
我最好将我的屏幕存储在变量中并在切换屏幕时重复使用它们,或者当我完成它时更好地处理每个屏幕然后创建我打算切换的屏幕类型的新实例到?
如果屏幕切换更频繁(比如最终幻想或口袋妖怪等游戏中的世界屏幕与战斗屏幕之间),答案会有所不同吗?
谢谢!
答案 0 :(得分:5)
在我看来,你应该重复使用经常使用的Screen
s并处理并重新创建经常不使用的Screen
。
在您的示例中,GameScreen
,GameOverScreen
和MainMenuScreen
都应该重复使用,因为它们彼此直接相连:
一旦玩家开始游戏,就有可能他死了。然后显示GameOverScreen
,然后直接显示MainMenuScreen
。因此,用户无需手动切换到Screen
个。{
相反,OptionsScreen
可以每次处理和重新创建,因为通常只打开OptionScreen
几次。它也没有直接连接到任何其他Screen
,但用户需要“强制”游戏打开OptionScreen
。
但只要没有太多Screen
s,重用就不应成为问题
在您的第二个示例中,Screen
被更频繁地使用,因此它们肯定会被重用。
修改强>
正如@EssEllDee所提到的,您还应该使用hide()
和show()
。当您切换Screen
时,这些方法会被Libgdx调用,并且它们可用于处置/重新创建重型资源。例如,当您切换到Texture
并重新加载时,您可以处置用于游戏的GameOverScreen
,当切换到GameScreen
时。