我想将 assetmanager 用于图像

i want to use assetmanager for an image

MyGdxGame.java

 public void print(){
    manager=new AssetManager();
    manager.load("selectlevel.png",Texture.class);
    manager.finishLoading();
    }

select级画面

 public void image(){
    Image img1=game.manager().get(("selectlevel.png"));
    }

我得到了什么(

Exception in thread "LWJGL Application" java.lang.ClassCastException: com.badlogic.gdx.graphics.Texture cannot be cast to com.badlogic.gdx.scenes.scene2d.ui.Image

我不想将图像类型更改为纹理。

根据您的错误信息:

Exception in thread "LWJGL Application" java.lang.ClassCastException: com.badlogic.gdx.graphics.Texture cannot be cast to com.badlogic.gdx.scenes.scene2d.ui.Image

您正在尝试将纹理放置在为 scene2d.ui.Image 制作的变量中。这将不起作用,因为纹理和 scene2d.ui.Image 非常不同。

scene2d.ui.Image 有一个采用纹理的构造函数,因此应该这样调用:

Image imgVariable = new Image(i_am_a_Texture);

在您提到的评论中收到错误

cannot resolve constructor 'Image(java.lang.Object)'

这就是说,当您使用新的图像构造函数时,您传递给它的是一个对象,而不是它所期望的纹理。

为了使对象成为纹理,您可以通过在要投射的对象中添加(纹理)来将其投射到纹理,如下所示:

 Texture textureVariable = (Texture) game.manager().get(("selectlevel.png"));

但是 assetManager 已经有一种方法可以说明 class 返回的对象应该是什么,那就是添加 class 作为第二个参数,如下所示

Texture textureVariable = game.manager().get(("selectlevel.png",Texture.class))