如何在绘制方法中将对象转换为纹理?

How to cast Object to Texture in draw method?

提问人:Adam 提问时间:12/10/2022 最后编辑:Adam 更新时间:12/12/2022 访问量:79

问:

我正在根据一个教程学习使用 LibGDX 库进行编程,但该教程是在旧版本的 LibGDX 上制作的。大部分都和我的版本一样,我做了一些调整,但我对这个版本了解不多。我有一个和声明:AnimationSpriteBatch

private Animation standLeftAnime,standRightAnime;
private SpriteBatch batcher;

这就是我要做的:

if(chicken.getStandingState()== Chicken.StandingState.STANDLEFT)
                batcher.draw(standLeftAnime.getKeyFrame(runTime),chicken.getPositionX(),chicken.getPositionY(),chicken.getWidth(),chicken.getHeight());

else if(chicken.getStandingState()== Chicken.StandingState.STANDRIGHT)
                batcher.draw(standRightAnime.getKeyFrame(runTime),chicken.getPositionX(),chicken.getPositionY(),chicken.getWidth(),chicken.getHeight());

但它抛出了一个错误:

SpriteBatch 类型的 draw(Texture, float, float, float, float) 方法不适用于参数 (对象、浮点、浮点、浮点、浮点)

我该如何解决这个问题?

java android cast libgdx draw

评论

1赞 londonBadger 12/11/2022
在这里回答,我想 stackoverflow.com/questions/61626360/......

答:

1赞 Tobias 12/12/2022 #1

该类使用泛型类型参数。默认情况下,如果您没有定义一个,则将使用(这就是为什么错误消息显示“不适用于参数(对象,...)”的原因)。AnimationObject

在您的情况下,这意味着您必须更改您发布到的第一个代码片段:

private Animation<TextureRegion> standLeftAnime,standRightAnime;
private SpriteBatch batcher;

也许您还需要更改初始化动画的代码。