Ich lerne, wie man libgdx benutzt, und ich habe weder für hier noch für docs einen awsnser gefunden. Mein Problem ist sehr klar im Titel. Wenn ich versuche, eine Textur zu erhalten geladen 5 Sekunden vor (dies ist, weil ich einen Gdx Timer verwenden, nur zum Testen) die Anwendung abstürzt und gebe diesenLibgdx: Textur kann nicht umgewandelt werden, wenn AssetManager.Update() true zurückgibt
Exception in thread "LWJGL Application" java.lang.ClassCastException: com.badlogic.gdx.graphics.Texture cannot be cast to com.badlogic.gdx.scenes.scene2d.ui.Image
at com.hoticecream.mad.Background.setStaticBackground(Background.java:33)
at com.hoticecream.mad.Playgorund$1.run(Playgorund.java:102)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.executeRunnables(LwjglApplication.java:257)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:208)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124)
ich werde die ganze Klasse schreiben, weil kurz
class Background {
private Image background;
private final String backgroundName;
private AssetManager manager;
Background(AssetManager manager){
this.manager = manager;
background = new Image();
backgroundName = "background1.png";
manager.load(backgroundName, Texture.class);
manager.finishLoadingAsset(backgroundName);
}
public void setStaticBackground(Stage stage){
//here is where error happends, affter manager.update() returning true
if(manager.update()){
background = manager.get(backgroundName);
}else {
Gdx.app.log("Manager","not loaded");
}
background.setHeight(stage.getHeight());
background.setWidth(stage.getWidth());
stage.addActor(background);
}
public void dispose(){
manager.unload(backgroundName);
}
}
Dia Anmerkung: die Vermögensverwalter durch das Argument von den inneren Klasse übergeben wird