Libgdx - 图像类dispose

时间:2016-06-29 14:23:58

标签: image libgdx textures dispose

我正在使用LibGDX在Eclipse上创建Android游戏。我创建了一个Image类的实例。我不确定我是否应该处理它。我是这样创建的;

img = new Image(new Texture("img.png"));

我也创建了一个纹理,但我找不到处理它的方法。我该怎么办?

2 个答案:

答案 0 :(得分:1)

在游戏对象图的一部分中存储您对Disposable资产的唯一引用非常容易出错。使用AssetManager,或至少使用一个跟踪所有纹理和声音等的类(但严重的是,使用AssetManager - 它具有内置的引用计数)。然后只有那个类必须处理所有Disposables的处理。你的演员可以引用一个纹理,但它不应该只包含引用,也不应该负责处理资产。

assetManager.load("img.png", Texture.class);
assetManager.finishLoading();

img = new Image(assetManager.get("img.png", Texture.class));

//...
assetManager.dispose();

答案 1 :(得分:0)

好吧,它看起来像Texture实现可处置,因此它将是需要处理的本机对象。您可以阅读this documentation.

您创建了一个带有匿名纹理的图片,这意味着您没有可以引用它的名称,因此您无法对其进行处理。您的Texture资产需要在代码中的某处引用,以便您可以在适当的时间处理它。通常我会有一个静态Assets类来处理需要时处理所有资产(停止应用程序时)。像Image这样的类使用这些资产,但他们不必担心处置它们。希望有所帮助。