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