2

我正在 libgdx 中制作一个简单的小游戏来学习基础知识和东西。我试着制作一个动画角色。但是有一个问题,4 帧中的第一帧显示正常,但显示了第二帧,并且在它旁边渲染了第三帧。第三个相同,它渲染它旁边的最后一帧。但是,第一帧和最后一帧旁边没有“双重”。

字符帧 = C1 C2 C3 C4

第一帧 - C1

第二帧 - C2 C3

第三帧 - 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);
.......

我省略了其余代码以减少混乱,但如有必要,我可以展示它。

有谁知道问题是什么?

提前致谢。

编辑:糟糕的绘画技巧,但这里是渲染的每一帧的图片:

图片

4

1 回答 1

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);
于 2013-05-31T02:34:39.957 回答