LibGDX Scene2D:对于组内的actor,动作根本不起作用

Ken*_*ang 4 action actor libgdx scene2d

我试图使用Action FadeOut消除一个Actor.但是,我发现没有任何动作对我的对象起作用.我的类的层次结构如下:

Actor -> MoveableObject -> Knight

Stage -> KnightGroup (Group) -> Knight
Run Code Online (Sandbox Code Playgroud)

我的骑士演员的动作根本不起作用.但是,我的KnightGroup小组的操作有效.这是我的骑士的代码:

public class Knight extends Players {
public Knight() {
    setWidth(96);
    setHeight(96);
    setPosition(100, 90);

    //Doesn't work
    AlphaAction action = new AlphaAction();
    action.setAlpha(0f);
    action.setDuration(1f);
    addAction(action);

    //Doesn't work
    addAction(fadeOut(1f));
    addAction(Actions.scaleBy(1f, 1f));
}

@Override
public void act(float delta){
    super.act(delta);
}


@Override
public void draw(Batch batch, float parentAlpha) {
    batch.setColor(getColor().r, getColor().g, getColor().b, getColor().a);
    batch.draw(animation[currentState], getX(), getY(), getWidth(), getHeight());
}
}
Run Code Online (Sandbox Code Playgroud)

我不能为我的生活找出问题所在.在行动MoveableObject(骑士的母公司)也不起作用.我最好的猜测是,在包装的演员Group将render在actions这些演员无效.这KnightGroup是我的代码中非常重要的一部分,我不得不做很多重构才能把它拿出来.别人可以对这个问题有所了解吗?

Spr*_*bua 6

在Actor类中,该方法act(float delta)调用act(delta)所有已注册Action的Actor.因此,您必须确保super.act(delta)在每个子类中调用Actor,以便调用act(delta)方法Actor.