如何在libgdx中扩展z-oerder动作?

时间:2013-11-04 01:50:45

标签: libgdx

我希望分两步完成以下事项:

  1. 在1秒内设置演员规模1.2,
  2. 然后将其z顺序设置为最顶层
  3. 我如何控制这个?如果使用

    sequence(Action action1, Action action2) 
    

    我必须将z顺序更改打包到一个动作,是吗?

    我知道在cocos2d中很容易完成这些动作以使用块。

1 个答案:

答案 0 :(得分:1)

设置Z索引有点超出了角色Actions的范围。您可以使用Actions.run(Runnable)执行任意操作。

    class ZIndexSetter implements Runnable {

    private int zIndex;
    private Actor actor;

    public ZIndexSetter(int zIndex, Actor actor) {
        this.zIndex = zIndex;
        this.actor = actor;
    }

    @Override
    public void run() {
        actor.setZIndex(zIndex);
    }

}

然后你可以这样使用它:

actor.addAction(Actions.sequence(Actions.scaleTo(1.2f, 1.2f, 1f), Actions.run(new ZIndexSetter(Integer.MAX_VALUE, actor));

但总的来说,我建议如果你有复杂的动作序列,它们不仅仅是调整大小,移动等等,你应该看看更强大的Tween Engine,这需要更多的时间为了让事情顺利进行,但是一旦你实现了所需的所有TweenAccessors,它就变得非常方便和易用。