Java LibGDX-未找到适用于setRegion(Objec)的方法
我正在学习代码学校关于制作马里奥的教程,并且有几次碰到这个问题。我已经一个星期左右无法解决它了。 问题是在作为LIBGDX一部分的set方法期间Java LibGDX-未找到适用于setRegion(Objec)的方法,java,android-studio,libgdx,Java,Android Studio,Libgdx,我正在学习代码学校关于制作马里奥的教程,并且有几次碰到这个问题。我已经一个星期左右无法解决它了。 问题是在作为LIBGDX一部分的set方法期间 setRegion(walkAnimation.getKeyFrame(stateTime, true)) 下面是更多的上下文 public void update(float dt){ stateTime += dt; setPosition(b2body.getPosition().x - getWidth() / 2, b2bod
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)渐变:错误:找不到适用于的方法
setRegion(对象)方法TextureRegion。setRegion(纹理)不可用
适用(参数不匹配;对象无法转换为纹理)
方法TextureRegion.setRegion(TextureRegion)不适用
(参数不匹配;对象无法转换为TextureRegion)
有人知道为什么不能转换对象吗?还有其他的写作方法吗
提前多谢这很可能是泛型的错误用法。必须用动画声明帧类型。
getKeyFrame()
返回您用声明的walkAnimation
类型-请参阅
从:
//初始化时
动画walkAnimation=新动画(0.025f,walkFrames);
//在渲染方法中
TextureRegion currentFrame=walkAnimation.getKeyFrame(stateTime,true);
setRegion()
接受一个TextureRegion
,正如您在中所读到的那样,您可以显示声明/初始化walkAnimation的代码部分吗?在LibGDX版本1.9.5中,动画类已更改为通用类。要使用TextureRegions,请指定其类型。即动画=新动画(//…);啊,非常感谢,我想我需要多读一点关于LibGDX纹理区域用法的书:我的理解如下:私有动画walkAnimation;然后在goomba方法中,walkAnimation=新动画(0.4f,帧)@AdamMcMurchie泛型的正确使用帮助解决了这个问题,对吗?如果是,你能接受这个答案吗?
// on initialization
Animation<TextureRegion> walkAnimation = new Animation<TextureRegion>(0.025f, walkFrames);
// in render method
TextureRegion currentFrame = walkAnimation.getKeyFrame(stateTime, true);