Libgdx - 一遍又一遍地做?

时间:2016-04-23 08:51:55

标签: java 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方法中还是只在第一行中?

2 个答案:

答案 0 :(得分:3)

你只需要这样做一次。它是相同的Texture对象,因此当您将它放置在任何引用上时,其他任何对象都不能再使用它。它被处理掉了。

另外,您可能需要查看AssetManager类,它会处理为您处理的内容。

答案 1 :(得分:0)

你正在使用&#34; bricktexture&#34;对于每一个&#34; Brick&#34;在ArrayList中,所以你基本上指向同一个对象,所以你应该只处理&#34; bricktexture&#34;一次。

如果你也想要免费&#34;数组,可能你应该调用

bricks.clear();

哪个会变空(因为里面没有元素)。