在libgdx中使用动画精灵获得双打

时间:2013-05-31 01:36:26

标签: libgdx

我正在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);
.......

我遗漏了剩下的代码以减少混乱,但我可以在必要时展示它。

有谁知道问题是什么?

提前致谢。

编辑:可怕的绘画技巧,但这里是每帧渲染的图片:

Picture

1 个答案:

答案 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);