4

Action FadeOut を使用してアクタをフェードアウトさせようとしています。しかし、オブジェクトに対して no アクションがまったく機能しないことを発見しました。私のクラスの階層は次のようになります。

Actor -> MoveableObject -> Knight

Stage -> KnightGroup (Group) -> Knight

Knight アクターのアクションがまったく機能しません。ただし、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());
}
}

私は一生、問題が何であるかを理解することはできません。(Knight の親) のアクションMoveableObjectも機能しません。私の最善の推測は、アクターを無効なアクターのGroup意志renderでラップすることです。actionsただし、これは私のKnightGroupコードの非常に重要な部分であり、それを取り除くには多くのリファクタリングを行う必要があります. 他の誰かがこの問題に光を当てることができますか?

4

1 に答える 1

6

Actorクラスでは、このメソッドは、登録されているすべての thisをact(float delta)呼び出します。したがって、のメソッドが呼び出されるように、のすべてのサブクラスで呼び出すことを確認する必要があります。act(delta)ActionActorsuper.act(delta)Actoract(delta)Actor

于 2014-02-27T07:01:08.940 に答える