2017-09-07 4 views
-1

私はそれらの記事に遭遇しました: https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/AssetManager.html http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/loaders/PixmapLoader.html http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/loaders/TextureLoader.html https://github.com/libgdx/libgdx/wiki/Managing-your-assetsPixmap/TextureをAssetManagerにロードするには?

そして、私はまだAssetManagerにテクスチャをロードする方法については何も見つかりませんでした。 私のゲームでは、Pixmapを作成し、それをテクスチャの周りにラップします。次に、のPixmapを処分します。次に、テクスチャをSpriteBatchで描画します。私のゲームで作成されたすべてのテクスチャは、Pixmapによって作成されているため、実行時に作成されます。これらのテクスチャをAssetManagerにロードするにはどうしたらいいですか?

上記のリンクと私が出会ったことは、すでに利用可能なファイルからテクスチャをロードする方法のみを示しています。あなたのコメントから

+0

AssetManagerのドキュメントを確認してください。すべてが対象となります。 – Zoe

+0

実行時に作成して読み込んだ資産を読み込む必要はありません。だから、なぜあなたはアセットマネージャを使う必要がありますか?上記のように@LunarWatcher – dfour

+0

、私は利用可能なすべてのドキュメントを読んだか、グーグルの時間以来。実際には、私が必要とする事例を十分に網羅していません。 –

答えて

1

AssetManagerは2倍以上のメモリを占有防ぐのに役立ちます。

おそらく、この問題を防ぐためにアセットマネージャを使用する必要はありません。代わりに、アセットが既にロードされているかどうかを確認する条件をコードに追加するだけです。

if(myTexture != null){ 
    // not loaded 
    pmap = new Pixmap(10, 10,Format.RGBA8888); 
    pmap.setColor(Color.RED); 
    pmap.fill(); 
    myTexture = new Texture(pmap); 
    pmap.dispose() 
}else{ 
    // already loaded, do nothing (or add to count of times used) 
} 

アセットマネージャを使用する場合は、いくつかのオプションがあります。

  1. 現在のテクスチャ/ピックスマップイメージを実際のファイルに保存して、通常はアセットマネージャでロードできます。
  2. AssetManager (code)を拡張し、独自のメソッドを追加して、アセットをassetMapおよびassetTypesオブジェクトマップに追加します。
+0

解決策2は私にとってうまく聞こえます。私はassetManagerを使用したいと思っています。なぜなら、私は画面間の切り替えからそれを回避することができるからです。条件付きのループはそれほど大きくはないでしょう。なぜなら私のゲームで利用可能なすべてのリソースにそれをしなければならないからです。私は解決策2を試し、それが機能するまで解決策としてあなたの答えをチェックします。 –

関連する問題