2016-06-29 1 views
1

私はLibGDXを使ってEclipse上でAndroidゲームを作成しています。 Imageクラスのインスタンスを作成しました。私はそれを処分すべきかどうか分からない。私はこのように作成しました。Libgdx - Image class dispose

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

私は同様にテクスチャを作成したが、私はそれを配置する方法を見つけることができませんでした。私は何をすべきか?

答えて

0

Textureはdisposeableを実装しているため、処理が必要なネイティブオブジェクトになります。 this documentation.

匿名のテクスチャを使用してイメージを作成しました。これは、参照できないように名前を付けることができないため、処分できません。あなたのテクスチャアセットは、コードのどこかで参照する必要があります。そのため、適切な時期にテクスチャアセットを破棄することができます。通常、私は必要なときに(アプリケーションを停止するとき)すべてのアセットを処分する静的なAssetsクラスを持っています。 Imageのようなクラスはこれらのアセットを使用しますが、それらを廃棄することについて心配する必要はありません。希望が役立ちます。

+0

回答ありがとうございます。私は俳優になるために 'img'が必要なので、ステージに追加することができます。どのクラスを使ってテクスチャを処分することを心配しないでいいですか? –

0

あなたのゲームのオブジェクトグラフの一部に使い捨てアセットへのあなたの唯一の参照を格納するのは非常に誤りです。 AssetManagerを使用するか、少なくとも、すべてのテクスチャとサウンドなどを追跡するクラスを使用します(しかし、真剣に、AssetManagerを使用します。これには参照カウントが組み込まれています)。その後、そのクラスだけがすべてのDisposablesの処分に対応しなければなりません。あなたの俳優はテクスチャへの参照を持つことができますが、唯一の参照を保持するものではなく、資産を処分する責任もありません。

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

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

//... 
assetManager.dispose();