2016-04-23 44 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(); 

这将成为空(如没有元素内)。