MyGdxGame.java
public void print(){
manager=new AssetManager();
manager.load("selectlevel.png",Texture.class);
manager.finishLoading();
}
选择级别屏幕
public void image(){
Image img1=game.manager().get(("selectlevel.png"));
}
我得到了什么(
线程“LWJGL Application”中的异常java.lang.ClassCastException: com.badlogic.gdx.graphics.Texture无法转换为 com.badlogic.gdx.scenes.scene2d.ui.Image
我不想将图像类型更改为纹理。
答案 0 :(得分:1)
根据您的错误消息:
线程“LWJGL Application”中的异常java.lang.ClassCastException:com.badlogic.gdx.graphics.Texture无法强制转换为com.badlogic.gdx.scenes.scene2d.ui.Image
您正在尝试将Texture放置在为scene2d.ui.Image创建的变量中。这不起作用,因为Texture和scene2d.ui.Image非常不同。
scene2d.ui.Image有一个带纹理的构造函数,所以应该这样调用:
Image imgVariable = new Image(i_am_a_Texture);
在您提到的评论中,您收到了错误
无法解析构造函数'Image(java.lang.Object)'
这就是说当你使用新的Image构造函数时,你传递了一个Object而不是它所期望的纹理。
为了使对象成为纹理,您可以通过从您想要投射的对象中添加(纹理)来将其投射到纹理:
Texture textureVariable = (Texture) game.manager().get(("selectlevel.png"));
然而,资产管理器已经有一种方法可以说明对象返回的类应该是什么,并且将类添加为第二个参数,如下所示
Texture textureVariable = game.manager().get(("selectlevel.png",Texture.class))