2017-02-12 55 views
0

這個問題有點扯遠了,因爲我並不是說要放置屏幕本身。我使用的是一個枚舉和切換語句來切換屏幕,而不是屏幕和遊戲類。我在這裏真正要問的是,當我從一種遊戲狀態轉換到另一種遊戲狀態時,我是否應該事先處理所有的一次性用品?或者我只是保留所有這些而不擔心它,儘管由於我正在渲染一個單獨的屏幕而不再渲染它們?每當我想切換到另一個屏幕時,我都會覺得不得不在屏幕上放置所有資源,所以我想知道它是否真的有必要。何時在LibGDX中處理屏幕?

回答

2

這是你的選擇和你的遊戲類型(你的遊戲是否有很多資源)。

如果有很多資源,那麼最好是配置一個屏幕的資源,然後在內存中加載另一個屏幕的資源,然後使用該資源。

在這種情況下顯示異步加載屏幕和加載資源。

如果沒有足夠的資源,只有在您退出遊戲時纔會處理資源。繼承遊戲的dispose()是在這種情況下處置你的遊戲資源的最佳地方,並且從這裏開始調用屏幕。以便屏幕特定資源可以處理。

0

簡單的規則可以是:

如果您加載東西(紋理,TextureAtlas,音樂,聲音等),在應用程序啓動和你沒有內存堆的問題 - 在應用Dispose方法處理它。

但是,如果您在屏幕啓動時爲屏幕加載特殊的東西,則應該將其置於屏幕處理方法中。

如果您不處理ex的資源。即使你不渲染它,紋理仍將保留在內存中。當您在屏幕內部加載一些紋理而不將其放置在屏幕處理方法中時,它可能會導致內存泄漏,因爲當您再次啓動屏幕時第二次加載相同的紋理。