【发布时间】:2016-04-20 06:38:23
【问题描述】:
我正在尝试在 LibGDX 中翻转一些动画,但由于它们的宽度不同,动画播放起来很奇怪。问题来了:
(红点标记 X/Y 坐标 {0,0})
如您所见,当您出拳时动画播放“左”时,脚开始的位置比原来要落后,但是当您右拳时,动画播放正常,因为两个动画的原点都是左角,所以过渡很顺利。
我想实现我想要的唯一方法是查看正在播放的动画并相应地调整坐标。
这是代码:
public static float draw(Batch batch, Animation animation, float animationState,
float delta,
int posX, int posY, boolean flip) {
animationState += delta;
TextureRegion r = animation.getKeyFrame(animationState, true);
float width = r.getRegionWidth() * SCALE;
float height = r.getRegionHeight() * SCALE;
if (flip) {
batch.draw(r, posX + width, posY, -width, height);
} else {
batch.draw(r, posX, posY, width, height);
}
return animationState;
}
欢迎就如何解决此问题提出任何建议。
【问题讨论】:
标签: animation libgdx sprite draw