這裏的問題是,在Game類中是否有一個公共的SpriteBatch是一個好主意,然後由所有Screens使用。這將避免在活動屏幕更改時重新分配對象。LibGDX整個應用程序的公開精靈批次
但是,我發現人們在每個屏幕上都使用新的和私有的SpriteBatches。爲什麼人們這樣做?我在這裏錯過了什麼嗎?
這裏的問題是,在Game類中是否有一個公共的SpriteBatch是一個好主意,然後由所有Screens使用。這將避免在活動屏幕更改時重新分配對象。LibGDX整個應用程序的公開精靈批次
但是,我發現人們在每個屏幕上都使用新的和私有的SpriteBatches。爲什麼人們這樣做?我在這裏錯過了什麼嗎?
建議使用單個Batch
實例,但我認爲公共(或靜態)變量不是一個好主意,因爲它們破壞了封裝並使重構代碼變得更加困難。想象一下,將屏幕類移動到另一個應用程序中:您必須替換Game
擴展中批次的所有引用,否則您將被迫在另一個項目中創建此類字段。
相反,我會在屏幕構造函數中傳遞批處理。畢竟,屏幕用於顯示視圖:不需要通知其他應用程序。
你說得對。他們不應該那樣做。如果你想保護它,你可以使它成爲final
。所有使用它的對象應該知道設置它們需要的參數,例如應用它們自己的投影矩陣和混合模式。