【发布时间】:2021-01-26 16:09:58
【问题描述】:
我正在尝试使用精灵表将动画上的这个 LibGDX 示例从 Java 转换为 Kotlin
这里是 Java 代码 sn-p 的链接: https://github.com/libgdx/libgdx/wiki/2D-Animation
这是我的 Kotlin 代码:
// load the sprite sheet as a texture
idleSheet = Texture("raw/Skeleton-Idle.png".toInternalFile())
idleFrames = Array<TextureRegion>(true, FRAME_ROWS*FRAME_COLS)
// use split method to create 2d array of texture regions
// sprite sheet contains frames of equal size & alignment
var temp = TextureRegion.split(
idleSheet,
idleSheet.width / FRAME_COLS,
idleSheet.height / FRAME_ROWS
)
var index = 1
for (i in 1..FRAME_ROWS) {
for (j in 1..FRAME_COLS) {
idleFrames[index] = temp[i][j]
index ++
}
}
// initialise animation with frame interval & array of frames
idleAnimation = Animation(0.05f,idleFrames)
问题似乎出在Index 1 out of bounds for length 1 行中的idleFrames[index] = temp[i][j] - 我在使用 Kotlin 数组时做了一些非常基本的错误,但似乎无法修复它。
有什么想法吗?
【问题讨论】:
-
感谢您的快速回复 - 实际上我在遇到这里的路障后不久就搬到了 TextureAtlases。刚回来看看我能不能解决这个难题
-
刚刚尝试了您的解决方案 -
index can't be >= size: 0 >= 0是新错误 - 指向同一行idleFrames[index] = temp[i][j] -
哦,我刚刚意识到您使用的是 LibGDX 的 Array 类,而不是 Kotlin 的数组。
标签: arrays kotlin animation libgdx