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/管理您的资产

而且我仍然没有找到有关如何将 Texture 加载到AssetManager的任何信息。在我的游戏中,我创建了一个Pixmap并将其包裹在一个Texture周围。然后我处理 Pixmap然后我用 SpriteBatch绘制纹理。在我的游戏中创建的每个纹理都是由像素图创建的,因此它是在运行时创建的。如何将这些纹理加载到 AssetManager 中?

上面的链接和我遇到的所有内容都只显示了如何从已经可用的文件中加载纹理。

4

1 回答 1

2

从你的评论

AssetManager 有助于防止占用内存两次或更多。

您可能不需要使用资产管理器来防止这种情况发生。相反,您可以在代码中添加一个条件来检查资产是否已经加载,例如

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(代码)并添加您自己的方法以将您的资产添加到 assets objectMap 和 assetsTypes objectMap。
于 2017-09-08T09:56:52.617 回答