2017-03-21 38 views
0

我正在通過教程學習Libgdx,每次看到時,使用相同的實例或變量來輸出您的精靈對象。所以,我可以理解,如果我們想創建和渲染相同的圖像或精靈,我們可以簡單地使用相同的變量。但現在,我需要顯示幾個對象(不同的球員/圖像)。我仍然可以使用相同的變量來輸出它們,還是應該爲它們中的每一個創建變量?因爲我已經看到它節省了空間和內存。爲了輸出精靈,我使用了SpriteBatch,Texture,Sprite和TextureRegion(用於移動精靈)對象。LibGdx一個或多個實例的幾個對象

回答

1

不,你不能使用相同的精靈對象爲不同的實體(球員等)這不是你將保存內存的地方。 Sprite對象的創建不是重量級的操作。

你可以在哪裏保存內存紋理。你應該儘可能重用紋理。每次創建新的Sprite時,您都不想加載新的紋理。假設有一張圖像代表一名玩家,您不應該一次又一次地創建該圖像。您應該只使用AssetLoader將其加載到內存中,然後重新使用它。

如果您有多個小尺寸紋理,那麼您應該使用libgdx的紋理打包器將它們打包到單個圖像中,因爲加載多個小紋理不是一個好主意,而是加載更大的紋理表單很好,因爲綁定紋理昂貴的操作。請閱讀Texture Atlas瞭解更多詳細信息。

另外,一旦你不需要紋理,你應該處置它們。

閱讀本頁Memory Management in Libgdx瞭解更多關於由許多Libgdx類實現的Disposable接口的信息。

我也覺得你正試圖過早地優化你的遊戲。在這樣的早期階段,根本不用擔心對象創作。並記住一件事 - 不成熟的優化是萬惡之源。