gpt4 book ai didi

3d - Libgdx 中的卡片翻转动画

转载 作者:行者123 更新时间:2023-12-05 01:05:08 25 4
gpt4 key购买 nike

我如何在 Libgdx 中实现卡片翻转动画(以某个角度翻转)–
我用过 sprite.flip(boolean x, boolean y) 但无法达到预期的效果。

我想做类似的事情:

http://developer.android.com/training/animation/cardflip.html

最佳答案

如果您使用 Actor在你的代码中,你可以使用我写的这两个操作:

public class MyActions {
public static Action flipOut(final float x, final float width, final float duration) {
return new Action() {
float left = duration;

@Override
public boolean act(float delta) {
left -= delta;
if (left <= 0) {
actor.setX(x + (width / 2));
actor.setWidth(0);
return true;
}
float tmpWidth = width * (left / duration);
actor.setX(x + ((width / 2) - (tmpWidth / 2)));
actor.setWidth(tmpWidth);
return false;
}
};
}

public static Action flipIn(final float x, final float width, final float duration) {
return new Action() {
float done = 0;

@Override
public boolean act(float delta) {
done += delta;
if (done >= duration) {
actor.setX(x);
actor.setWidth(width);
return true;
}
float tmpWidth = width * (done / duration);
actor.setX(x + ((width / 2) - (tmpWidth / 2)));
actor.setWidth(tmpWidth);
return false;
}
};
}
}

您可以将这些操作与
myActor.addAction(
new SequenceAction(
MyActions.flipOut(x, width, duration),
MyActions.flipIn(x, width, duration)));

如果你想让你的卡片有不同的一面,你必须在中间 Action 来切换 Actor 的形象。

您还可以使用内置操作,但这会导致很多口吃,所以我不能真正推荐它:
SequenceAction action = new SequenceAction(
new ParallelAction(
Actions.scaleTo(0, 1, duration),
Actions.moveBy(width / 2, 0, duration)),
new ParallelAction(
Actions.scaleTo(1, 1, duration),
Actions.moveBy(-width / 2, 0, duration)));

关于3d - Libgdx 中的卡片翻转动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21907742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com