0

これらのスケール修飾子を交互に実行しようとしています。初めて低いと呼ばれ、それは機能します。レイズも初めて効きます。その後はどちらも機能しません。呼び出しは Lower 修飾子に対して行われますが、何らかの理由で開始されません。

Lower = new ScaleModifier(0.5f, 1.0f, 0.8f){
        @Override
        protected void onModifierStarted(IEntity pItem) {
            Log.d(tag, "Lower Started");
            super.onModifierStarted(pItem);
            mIsRaised = false;
        }

        @Override
        protected void onModifierFinished(IEntity pItem) {
            Log.d(tag, "Lower Finished");
            super.onModifierFinished(pItem);
            mIsRaised = false;
        }
    };

    Raise = new ScaleModifier(0.5f, 0.8f, 1.0f){

        @Override
        protected void onModifierStarted(IEntity pItem) {
            Log.d(tag, "Raise Started");
            super.onModifierStarted(pItem);
            mIsRaised = true;
        }

        @Override
        protected void onModifierFinished(IEntity pItem) {
            Log.d(tag, "Raise Finished");
            super.onModifierFinished(pItem);
            mIsRaised = true;
        }
    };
4

2 に答える 2

4

AndEngine を使用してからしばらく経ちましたが、効果をやり直すには Lower.reset() と Raise.reset() を呼び出す必要があると思います。

モディファイアには、reset() が呼び出されたときに false に設定される mFinished というブール値フラグが含まれています。

于 2013-06-25T14:37:18.147 に答える
0

スプライトの交互のアニメーションが必要な場合は、LoopEntityModifier を使用して次のアプローチを試してください。

sprite.registerEntityModifier(new LoopEntityModifier(new SequenceEntityModifier(Lower, Raise)));
于 2013-06-27T19:53:55.587 に答える