2017-02-12 91 views
0

这个问题有点扯远了,因为我并不是说要放置屏幕本身。我使用的是一个枚举和切换语句来切换屏幕,而不是屏幕和游戏类。我在这里真正要问的是,当我从一种游戏状态转换到另一种游戏状态时,我是否应该事先处理所有的一次性用品?或者我只是保留所有这些而不担心它,尽管由于我正在渲染一个单独的屏幕而不再渲染它们?每当我想切换到另一个屏幕时,我都会觉得不得不在屏幕上放置所有资源,所以我想知道它是否真的有必要。何时在LibGDX中处理屏幕?

回答

2

这是你的选择和你的游戏类型(你的游戏是否有很多资源)。

如果有很多资源,那么最好是配置一个屏幕的资源,然后在内存中加载另一个屏幕的资源,然后使用该资源。

在这种情况下显示异步加载屏幕和加载资源。

如果没有足够的资源,只有在您退出游戏时才会处理资源。继承游戏的dispose()是在这种情况下处置你的游戏资源的最佳地方,并且从这里开始调用屏幕。以便屏幕特定资源可以处理。

0

简单的规则可以是:

如果您加载东西(纹理,TextureAtlas,音乐,声音等),在应用程序启动和你没有内存堆的问题 - 在应用Dispose方法处理它。

但是,如果您在屏幕启动时为屏幕加载特殊的东西,则应该将其置于屏幕处理方法中。

如果您不处理ex的资源。即使你不渲染它,纹理仍将保留在内存中。当您在屏幕内部加载一些纹理而不将其放置在屏幕处理方法中时,它可能会导致内存泄漏,因为当您再次启动屏幕时第二次加载相同的纹理。