我正在libgdx中制作一个简单的小游戏来学习基础知识和内容。我试着拥有一个动画角色。但是有一个问题,4帧中的第一帧显示正常但第二帧显示在其旁边,第三帧被渲染。第三个相同,它渲染了它旁边的最后一帧。第一帧和最后一帧在它旁边没有“双”。
字符帧= C1 C2 C3 C4
第1帧 - C1
第2帧 - C2 C3
第3帧 - C3 C4
第4帧(最后) - C4
至于代码:
......
walk = new Animation(0.0015f, assets.leftframes);
.......
statetime += Gdx.graphics.getDeltaTime();
currentframe = walk.getKeyFrame(statetime, true);
batcher.draw(currentframe, character.x, character.y);
.......
我遗漏了剩下的代码以减少混乱,但我可以在必要时展示它。
有谁知道问题是什么?
提前致谢。
编辑:可怕的绘画技巧,但这里是每帧渲染的图片:
答案 0 :(得分:2)
看起来你的第二和第三帧宽度是应该的两倍。 检查创建动画时,所有关键帧必须具有相同的宽度。 你的帧之间的时间太快,尝试0.2F。
编辑(因为你的评论):
这就是错误,每个新框架都有更大的宽度。
替换它:
leftframes[x] = new TextureRegion(left, x * 32, 0, (x+1) * 32, 48);
有了这个:
leftframes[x] = new TextureRegion(left, x * 32, 0, 32, 48);