Java LibGDX getKeyFrame表示返回object而不是TextureRegion/frame
遵循本教程: 我得到“渐变错误:不兼容类型:对象无法转换为TextureRegion” 在这一行:Java LibGDX getKeyFrame表示返回object而不是TextureRegion/frame,java,android,libgdx,Java,Android,Libgdx,遵循本教程: 我得到“渐变错误:不兼容类型:对象无法转换为TextureRegion” 在这一行: region=heroJump.getKeyFrame(stateTimer) 该跳转声明为: private Animation heroJump; 这是作为以下内容导入的: import com.badlogic.gdx.graphics.g2d.Animation; 在Android Studio中,键入heroJump.getKeyFrame()时弹出框显示该对象是函数的返回类型。 在
region=heroJump.getKeyFrame(stateTimer)代码>
该跳转声明为:
private Animation heroJump;
这是作为以下内容导入的:
import com.badlogic.gdx.graphics.g2d.Animation;
在Android Studio中,键入heroJump.getKeyFrame()时弹出框显示该对象是函数的返回类型。
在本教程中,它显示了一个纹理框架。
我正在导入与教程相同的内容。
我不确定为什么它不认为返回类型是相同的。
即使当我点击动画类来查看它的文档时,它似乎也给出了正确的返回类型
什么操作不正确,使得AndroidStudio/Compiler知道正确的返回类型并将进行编译?该方法在API中声明为
public T getKeyFrame(float stateTime)
以及类定义公共类动画
您有一个原始动画实例。进口不是问题。声明是
例如,您需要私有动画代码>并且你会给出你的数组
你没有以编译器可以不含糊地确定它们的方式定义泛型<代码>动画
实际上是一个动画
,其中T需要指定给编译器。“修复”是在heroJump实例中定义T,因此如果预期它是TextureRegion,则需要将其设置为:
private Animation<TextureRegion> heroJump;
私有动画跳转;
而不是您在代码块中列出的模棱两可的形式。这很有效。非常感谢。仍然不明白为什么教程在他们的声明中不需要这些。可能随着时间的推移而改变。可能是因为视频中出现的自动完成显示数组参数需要是TextureRegion
Collection1.9.5 LibGDX版本中更改了类,所以教程可能已经过时。谢谢,将标记为anwser,但几秒钟后你就被打败了:)@ChrisValentine-没问题:d动画类最近更改,请参阅:。如果您遵循教程,请确保使用用于创建教程的libgdx版本。最简单的答案是将“private Animation heroJump;”更改为“private Animation heroJump;”