如何使用libGDX更改Scene2D图像中的纹理?

如何使用libGDX更改Scene2D图像中的纹理?,libgdx,Libgdx,如何更改Scene2D图像中的纹理 文档中没有这样的方法。我通过为其构造器提供一个纹理参考来创建我的纹理。您必须更改可绘制的纹理,并将新纹理包装在一个SpriteDrawable Texture texture = ...; Image image = new Image(texture); // switch to a new texture Texture newTexture = ...; image.setDrawable(new SpriteDrawable(new Sprite(

如何更改Scene2D图像中的纹理


文档中没有这样的方法。我通过为其构造器提供一个纹理参考来创建我的纹理。

您必须更改可绘制的纹理,并将新纹理包装在一个
SpriteDrawable

Texture texture = ...;
Image image = new Image(texture);

// switch to a new texture
Texture newTexture = ...;
image.setDrawable(new SpriteDrawable(new Sprite(newTexture)));
您可以使用:

Texture texture = ...;
Image image = new Image(texture);

// change to a new texture
Texture newTexture = ...;
image.setDrawable(new TextureRegionDrawable(new TextureRegion(newTexture)));

不使用SpriteDrawable或创建新的Sprite实例。

基于此,将
((SpriteDrawable)image.getDrawable()).getSprite().setTexture(newTexture)也可以工作吗?如果你通过纹理构造函数创建图像,那么它将不工作,因为它将是一个TextureRegionRavable而不是SpritedRavable。所以我应该使用你发布的方法?我只是想避免创建新对象,但我想这没关系。嗯,这并不意味着要让人沮丧,但他们为什么不为
Image
类创建一个
.setTexture
函数。然后他们还需要添加一个
setTextureRegion
,一个
setSprite
,也许还有一个
setPixmap
,然后。。。你明白我的意思。