我正在通過教程學習Libgdx,每次看到時,使用相同的實例或變量來輸出您的精靈對象。所以,我可以理解,如果我們想創建和渲染相同的圖像或精靈,我們可以簡單地使用相同的變量。但現在,我需要顯示幾個對象(不同的球員/圖像)。我仍然可以使用相同的變量來輸出它們,還是應該爲它們中的每一個創建變量?因爲我已經看到它節省了空間和內存。爲了輸出精靈,我使用了SpriteBatch,Texture,Sprite和TextureRegion(用於移動精靈)對象。LibGdx一個或多個實例的幾個對象
0
A
回答
1
不,你不能使用相同的精靈對象爲不同的實體(球員等)這不是你將保存內存的地方。 Sprite對象的創建不是重量級的操作。
你可以在哪裏保存內存紋理。你應該儘可能重用紋理。每次創建新的Sprite時,您都不想加載新的紋理。假設有一張圖像代表一名玩家,您不應該一次又一次地創建該圖像。您應該只使用AssetLoader將其加載到內存中,然後重新使用它。
如果您有多個小尺寸紋理,那麼您應該使用libgdx的紋理打包器將它們打包到單個圖像中,因爲加載多個小紋理不是一個好主意,而是加載更大的紋理表單很好,因爲綁定紋理昂貴的操作。請閱讀Texture Atlas瞭解更多詳細信息。
另外,一旦你不需要紋理,你應該處置它們。
閱讀本頁Memory Management in Libgdx瞭解更多關於由許多Libgdx類實現的Disposable接口的信息。
我也覺得你正試圖過早地優化你的遊戲。在這樣的早期階段,根本不用擔心對象創作。並記住一件事 - 不成熟的優化是萬惡之源。
相關問題
- 1. 幾個畫布對象的實例
- 2. libgdx多個對象實施InputProcessor
- 3. Canvas對象和另一個對象內的多個實例?
- 4. 測試一個對象是一個或另一個實例
- 5. 實例化多個對象
- 6. 檢查一個實例變量是否有一個或多個對象?
- 7. 從一個對象實例
- 8. 在libgdx創建多個實例的Box2D
- 9. LibGDX中紋理的多個實例?
- 10. snakeYaml引用一個對象的同一個實例多次
- 11. 對象實例化另一個對象?
- 12. Javascript - 不能實例化同一對象的多個實例
- 13. 每個HttpContext實例一個對象
- 14. System.NullReferenceException:對象未設置爲一個對象的一個實例
- 15. 中的對象的圖形替換單一實例對象的多個實例
- 16. 一個對象的多個實例的併發問題
- 17. 訪問目標中的一個對象的多個實例C
- 18. 保證一個對象的多個實例
- 19. 創建一個對象的多個實例。 (遊戲)
- 20. 實例化一個不可變數組中的多個對象
- 21. 創建一個對象[多個相同的實例]
- 22. 如何在Clojure中創建一個「對象」的多個實例?
- 23. Raytracer將不會渲染一個對象的多個實例
- 24. 創建一個對象的多個實例c#
- 25. 實例化多個相同的對象
- 26. 有多個javascript對象的實例
- 27. 防止對象的多個實例
- 28. 模擬對象的多個實例
- 29. Python對象的多個實例表現得像同一個實例
- 30. 創建一個對象或屬性的多個實例來存儲屬性值