如何使用 libgdx 资产管理器正确加载纹理
Posted
技术标签:
【中文标题】如何使用 libgdx 资产管理器正确加载纹理【英文标题】:How to properly load textures using the libgdx assetmanager 【发布时间】:2012-09-05 16:05:50 【问题描述】:这是将纹理正确加载到AssetManager
的方式吗?
Texture tex;
AssetManager manager = new AssetManager();
manager.load("menu/bg.png",Texture.class);
tex = manager.get("menu/bg.png",Texture.class);
纹理加载失败,出现错误“无法加载纹理菜单/bg.png”。
我们应该如何使用AssetManager
加载我们的纹理?
【问题讨论】:
【参考方案1】:这几乎就是 AssetManager 的使用方式,但不完全如此。 我建议在 wiki 上阅读有关 libgdx AssetManager 的信息。
几点: 变量应该是驼峰式,所以 AssetManager manager... 而不是 AssetManager Manager。
您需要致电manager.update()
;真正让它加载东西。这需要在manager.update()
之前调用;返回true,然后加载完成。因此,您可以制作一个加载屏幕,在其中每帧调用 manager.update();
,当它返回 true 时,您切换到其他屏幕。
如果您只想加载所有内容,并在加载之前一直阻塞,请在尝试从经理那里获取任何内容之前致电manager.finishLoading();
。
您可能必须在 assets
文件夹中创建一个名为 data
的文件夹并将您的资产放在那里,而不是直接将它们放在资产文件夹中。所以把你的资产放在mygame-android\assets\data
而不是mygame-android\assets
。
如果您使用 gdx-setup-gui 创建项目,应该没问题。但如果没有,您的桌面项目也需要知道在哪里可以找到资产。
有关如何创建animated, responsive loading screen with libgdx 的示例。 (video)
【讨论】:
我在做和上面一样的事情,我看过你的视频,但此时我只想使用资产管理器添加一个 png 或 jpg 作为背景。我的代码是一样的,但我添加了finishedLoading。并试图将其添加到舞台上,但那不是演员,所以我无法将其添加到舞台上。 manager.load("assets/data/badlogic.jpg",Texture.class); manager.finishLoading(); bg = manager.get("assets/data/badlogic.jpg",Texture.class); stage.addActor(bg); nb : assets 下面的任何目录都可以。以上是关于如何使用 libgdx 资产管理器正确加载纹理的主要内容,如果未能解决你的问题,请参考以下文章