2016-01-25 54 views
0

這裏的問題是,在Game類中是否有一個公共的SpriteBatch是一個好主意,然後由所有Screens使用。這將避免在活動屏幕更改時重新分配對象。LibGDX整個應用程序的公開精靈批次

但是,我發現人們在每個屏幕上都使用新的和私有的SpriteBatches。爲什麼人們這樣做?我在這裏錯過了什麼嗎?

回答

1

建議使用單個Batch實例,但我認爲公共(或靜態)變量不是一個好主意,因爲它們破壞了封裝並使重構代碼變得更加困難。想象一下,將屏幕類移動到另一個應用程序中:您必須替換Game擴展中批次的所有引用,否則您將被迫在另一個項目中創建此類字段。

相反,我會在屏幕構造函數中傳遞批處理。畢竟,屏幕用於顯示視圖:不需要通知其他應用程序。

1

你說得對。他們不應該那樣做。如果你想保護它,你可以使它成爲final。所有使用它的對象應該知道設置它們需要的參數,例如應用它們自己的投影矩陣和混合模式。