我想知道如果一个Class为我的屏幕启动所有必需的变量/对象,然后将这个类传递给不同的屏幕,而不是总是在屏幕本身启动所有内容,那么性能是否更好。< / p>
然后,如果需要更改某些内容,请说我要更改标签中的文字,从#1;等级1&#34;到&#34; 2级&#34;我只是这样做:
//inside Screen
gameContext.getLevelLabel().setText("level 2");
//gameContext is the class everything is initialized in that gets //initialized on app launch
我目前正在努力解决内存泄漏/重量级gc的问题,我认为这很多,因为我每次在屏幕之间切换时都会启动这么多局部变量(我已经卸载了所有资产和所有内容)一次性的)。
另一个例子可能是我使用的UI背景,我的UI中有7个不同的屏幕,但它们都使用相同的背景。现在我在我的屏幕扩展的父屏幕中启动BG,但每次调用g.setScreen(new Screen(screen));
时它仍然被初始化,这感觉次优。
我想到的一个选项是在启动时启动所有屏幕,然后当我交换屏幕时,我只是调用g.setScreen(g.getSettingScreen())
,即我不会一直启动屏幕,而是将它们保存在内存中,任何可以更改的字段我在show()
中刷新。我不确定什么是最佳性能。