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方法中还是只在第一行中?
答案 0 :(得分:3)
你只需要这样做一次。它是相同的Texture对象,因此当您将它放置在任何引用上时,其他任何对象都不能再使用它。它被处理掉了。
另外,您可能需要查看AssetManager类,它会处理为您处理的内容。
答案 1 :(得分:0)
你正在使用&#34; bricktexture&#34;对于每一个&#34; Brick&#34;在ArrayList中,所以你基本上指向同一个对象,所以你应该只处理&#34; bricktexture&#34;一次。
如果你也想要免费&#34;数组,可能你应该调用
bricks.clear();
哪个会变空(因为里面没有元素)。