我在使用assetManager加載資產時出現了一個奇怪的問題。我的資產管理器是我製作的一個單獨的課程,可以縮短和整潔所有內容。我的資產類不是靜態的。我將所有資產加載到非靜態assetDescriptor中。Android Libgdx assetManager:資產未加載
我加載了我的啓動畫面,它在顯示時加載了我所有的資產。當我調用其他屏幕時,我已經加載的資產無法加載,導致我的遊戲崩潰。啓動畫面會加載,但當它分配新的畫面時會崩潰。
我已經在這個問題上花了2天。嘗試超過15個變化。沒有優勢。
我的錯誤信息是:
com.badlogic.gdx.utils.GdxRuntimeException: Asset not loaded: stuff.png
at com.badlogic.gdx.assets.AssetManager.get(AssetManager.java:144)
at com.badlogic.gdx.assets.AssetManager.get(AssetManager.java:167)
at com.nectar.pewdybird.mainMenu.<init>(mainMenu.java:71)
at com.nectar.pewdybird.pewdyBird.render(pewdyBird.java:68)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:459)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
Splash.class:
public Assets assets;
public void create(){
assets = new Assets();
assets.load();
}
public void render(){
if(assets.update()) {
setScreen(new mainMenu(this));
dispose();
} else {
//Splash Screen
gl.glClearColor(0,0,0,1);
gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
//Draws SplashScreen
batch.end();
}
}
public void dispose(){
this.screen.dispose();
this.batch.dispose();
}
mainMenu.class
public Assets assets;
private Texture Stuff;
public mainMenu(Splash game){
assets = game.assets;
Stuff = game.assets.manager.get(game.assets.stuff);
}
個Asset.class
public AssetManager manager = new AssetManager(new InternalFileHandleResolver());
public final AssetDescriptor<Texture> stuff =
new AssetDescriptor<Texture>("stuff.png", Texture.class);
public void load(){
manager.load(stuff);
//12 More loads
manager.finishLoading();
}
public boolean update(){
return manager.update();
}
感謝您的閱讀和可能與我也許簡單的問題幫助。
1.飛濺類實現屏幕或擴展遊戲類。 ? 2.你正在使用mainMenu的參數化構造函數,它在哪裏? – Aryan
Splash擴展com.badlogic.gdx.game; 和mainMenu實現Screen。和主菜單 我應該做的飛濺工具屏幕以及?我只是想,我實際上並沒有在我的飛濺中使用gdx.game。 – deathwillcome800