2015-09-29 62 views
0

爲什麼你可以配置一個精靈的紋理是這樣的:sprite.getTexture().dispose();你如何/爲什麼可以在另一個班級處理某些東西?

不要你的價值,因爲爪哇(複印件)獲得的質感,不會你只是處理紋理的副本?我在這裏誤解了一些東西。從TextureRegionTextureRegion.getTexture()

+1

在Java中,引用本質上是一個指針。所以它就像一個按值傳遞的指針,指向同一個對象。如果某人明確編寫了該方法以手動實例化一個副本並返回該副本,則只會獲得副本。 – Tenfour04

回答

4

Sprite繼承來實現,如:

public Texture getTexture() { 
     return texture; 
} 

所以,不,你沒有得到一個副本,但到了精靈的紋理參考。打電話給dispose()你會處理精靈紋理。

0

您將獲得對java中的對象的引用,而不是值。但在libGDX中爲什麼使用dispose()及其接口Disposable還有另一個原因。由libGDX處理的一些資源(紋理就在其中)不必位於JVM的範圍之內。例如,紋理的像素圖可以在堆上或在視頻內存中。您將通過撥打dispose()來釋放該資源。而且你應該每次不再需要這樣做,以防止泄漏。

相關問題