我正在尝试使用Libgdx。 这就是我想要实现的目标,
在Actor上定义一个动作,当actor正在执行动作时,按钮点击我们应该可以从同一个位置开始和停止动作。
我尝试了这个stackoverflow answer但是在再次开始动作之后,演员移动得比之前更快,因为最初我们已经设定了完成动作的持续时间,并且由于剩余的时间更少,所以它运行得更快。
你能帮帮忙吗?我错过了什么吗?答案 0 :(得分:1)
尝试直接从Actor#actions
数组中删除actor中的操作,然后在另一次单击时将其添加回来。例如:
final Actor actor = // ... initialize your actor;
final Action action = Actions.forever(Actions.rotateBy(360f, 3f, Interpolation.bounceOut));
actor.addAction(action);
actor.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
Array<Action> actions = actor.getActions();
if (actions.contains(action, true)) {
// removing an action with Actor#removeAction(Action) method will reset the action,
// we don't want that, so we delete it directly from the actions array
actions.removeValue(action, true);
} else {
actor.addAction(action);
}
}
});