You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala使用LibGDX创建Animation时出现类型不匹配错误

问题原因

  1. LibGDX的Animation类的多参数构造有两种重载:
    • 第一种接收float frameDuration, com.badlogic.gdx.utils.Array<T> keyFrames
    • 第二种接收可变参数:float frameDuration, T... keyFrames
  2. 你当前传入的是Scala原生Array[TextureRegion],Scala默认不会将原生数组自动适配为Java可变参数,也不会自动转为LibGDX自定义的Array类型,编译器会直接把整个Array对象当做单个T类型参数传入可变参数重载,就触发了类型不匹配的报错:要求传入TextureRegion,实际传入了Array[TextureRegion]。

解决方法

两种方案二选一即可:

  • 方案1:添加Scala可变参数展开标记,告诉编译器将数组展开为逐个参数匹配可变参数重载
    直接修改构造Animation的代码为:
    walkAnimation = new Animation(1f/4f, frames:_*)
    
  • 方案2:将Scala原生Array转为LibGDX自带的Array类型
    先导入LibGDX的Array类(重命名避免和Scala原生Array冲突),再做转换:
    // 导入语句放在文件顶部
    import com.badlogic.gdx.utils.{Array => GdxArray}
    
    // 构造Animation的代码
    walkAnimation = new Animation(1f/4f, new GdxArray(frames))
    

修改完成后即可正常编译运行。

内容的提问来源于stack exchange,提问作者edoelas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:54:05