如何将 Pixmap/Texture 加载到 AssetManager 中?
How to load Pixmap/Texture into AssetManager?
我看过那些文章:
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-assets
而且我仍然没有找到任何有关如何将纹理加载到 AssetManager 的信息。
在我的游戏中,我创建了一个 Pixmap 并将其包裹在 Texture 周围。然后我处理Pixmap。然后我用 SpriteBatch 绘制 Texture。我游戏中创建的每个纹理都是由像素图创建的,因此它是在运行时创建的。如何将这些纹理加载到 AssetManager 中?
上面的链接和我遇到的所有内容仅展示了如何从现有文件加载纹理。
来自您的评论
AssetManager can be helpful to prevent taking up memory twice or more.
您可能不需要使用资产管理器来防止这种情况发生。相反,您可以在代码中添加一个条件来检查资产是否已加载,例如
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)
}
如果您仍想使用资产管理器,您有几个选择。
- 您可以将当前的 texture/pixmap 图像保存到实际文件中,然后使用资产管理器正常加载它们。 (最简单的选项)
- 扩展 AssetManager (code) 并添加您自己的方法以将您的资产添加到资产 objectMap 和 assetTypes objectMap。
我看过那些文章: 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-assets
而且我仍然没有找到任何有关如何将纹理加载到 AssetManager 的信息。 在我的游戏中,我创建了一个 Pixmap 并将其包裹在 Texture 周围。然后我处理Pixmap。然后我用 SpriteBatch 绘制 Texture。我游戏中创建的每个纹理都是由像素图创建的,因此它是在运行时创建的。如何将这些纹理加载到 AssetManager 中?
上面的链接和我遇到的所有内容仅展示了如何从现有文件加载纹理。
来自您的评论
AssetManager can be helpful to prevent taking up memory twice or more.
您可能不需要使用资产管理器来防止这种情况发生。相反,您可以在代码中添加一个条件来检查资产是否已加载,例如
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)
}
如果您仍想使用资产管理器,您有几个选择。
- 您可以将当前的 texture/pixmap 图像保存到实际文件中,然后使用资产管理器正常加载它们。 (最简单的选项)
- 扩展 AssetManager (code) 并添加您自己的方法以将您的资产添加到资产 objectMap 和 assetTypes objectMap。