2016-04-23 43 views
1

嘿,我是Libgdx的初學者。我對處理這些東西有點困惑。Libgdx - 反覆處理?

Texture brickTexture; 
Array<Brick> bricks; 

public Game { 
    brickTexture = new Texture("brick.png"); 
    bricks = new Array<Brick>(); 

    for (int i = 0; i < 10; i++) { 
     Brick brick = new Brick(i, brickTexture); 
     bricks.add(brick); 
    } 
} 

void dispose() { 
    brickTexture.dispose(); // brick texture loaded in this class 
    for (Brick brick : bricks) brick.brickTexture.dispose(); // disposing the public texture which was earlier passed on to the brick class 
} 

這兩行應該在dispose方法還是隻有第一個?

回答

3

你只需要做一次。它是同一個Texture對象,所以當你把它放在任何引用上時,其他對象都不能再使用它了。它被處置。

另外,您可能還想查看AssetManager類,它可以爲您處理處理東西。

+0

thanx使用了我已經告訴過的相同方法,但我懷疑可能需要處理所有對象。 –

0

對ArrayList中的每個「Brick」使用「bricktexture」,因此基本上指向相同的對象,所以應該只處置「bricktexture」一次。

如果你也想「自由」的數組,或許你應該叫

bricks.clear(); 

這將成爲空(如沒有元素內)。