2012-09-12 51 views
11

這是如何正確加載紋理到AssetManager如何使用libgdx 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加載我們的紋理?

回答

20

這幾乎應該如何使用AssetManager,但不是完全。 我推薦您在維基上閱讀關於libgdx AssetManager的文章。

幾點:
變量應在駝峯,所以AssetManager 經理 ...而不是AssetManager 經理

您需要致電manager.update();實際上使它加載的東西。這將需要被調用,直到manager.update();返回true,然後完成加載。因此,您可以創建一個加載屏幕,您可以在每個框架中調用manager.update();,並在其返回true時切換到其他屏幕。
如果您只是想要加載所有內容並阻止直到加載,請在嘗試從管理器獲取任何內容之前,請致電manager.finishLoading();

您可能需要在名爲dataassets文件夾中創建一個文件夾,並將您的資源放在那裏,而不是直接將它們放在assets文件夾中。因此,請將您的資產置於mygame-android\assets\data而不是mygame-android\assets

如果您使用gdx-setup-gui來創建項目,您應該沒問題。但是,如果沒有,您的桌面項目也需要知道哪裏可以找到資產。

關於如何創建animated, responsive loading screen with libgdx的示例。 (video

+0

我正在做與上面相同的事情,我看過您的視頻,但此時我只想使用資產管理器來添加png或jpg作爲背景。我的代碼是相同的,但我已添加finishedLoading。並試圖將其添加到舞臺上,但那不是演員,所以我不能將它添加到舞臺上。 manager.load(「assets/data/badlogic.jpg」,Texture.class); \t \t manager.finishLoading(); \t \t bg = manager.get(「assets/data/badlogic.jpg」,Texture.class); \t \t stage.addActor(bg); – user629283

+0

nb:資產下面的任何目錄都可以。 – RichieHH