我正在关注制作马里奥的codechool教程,并且几次碰到这个问题。我已经一个星期左右无法解决它。 问题是在作为LIBGDX
的一部分的set方法期间 setRegion(walkAnimation.getKeyFrame(stateTime, true))
以下更多背景信息。
public void update(float dt){
stateTime += dt;
setPosition(b2body.getPosition().x - getWidth() / 2, b2body.getPosition().y - getHeight() / 2);
setRegion(walkAnimation.getKeyFrame(stateTime, true));
walkAnimation
也在早期方法中定义。
android studio的错误是
错误:(33,8)Gradle:错误:找不到合适的方法 setRegion(Object)方法TextureRegion.setRegion(Texture)不是 适用(参数不匹配;对象无法转换为纹理) 方法TextureRegion.setRegion(TextureRegion)不适用 (参数不匹配;对象无法转换为TextureRegion)
有谁知道为什么对象无法转换?还有另一种写作方式吗?
非常感谢提前
答案 0 :(得分:0)
很可能是泛型的错误用法。您必须使用动画声明帧类型。
getKeyFrame()
会返回您声明walkAnimation
的类型 - 请参阅the API documentation。
来自LibGDX documentation (excerpt):
// on initialization
Animation<TextureRegion> walkAnimation = new Animation<TextureRegion>(0.025f, walkFrames);
// in render method
TextureRegion currentFrame = walkAnimation.getKeyFrame(stateTime, true);
setRegion()
接受TextureRegion
,the API