我想将 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))
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))