如何在Android AndEngine中执行动画?

unc*_*Lem 0 animation android andengine

当我必须在我的场景上移动一些精灵(例如,在100px向下)时,我正在使用此代码:

Timer timer = new Timer();
for (int i=0; i<10; i++) {
    delay+=frameDelay;
    timer.schedule(new TimerTask() {
            @Override
            public void run() {
                sprite.setPosition(sprite.getX(), sprite.getY()+10);
            }
        },delay);
}
Run Code Online (Sandbox Code Playgroud)

它有效,但我想知道是否有更多正确和/或更快的可能性来做到这一点.

jmr*_*lty 5

或者查看各种可用的修饰符 - 向上/向下移动,使用MoveYModifier - 类似于

yourSprite.registerEntityModifier(new MoveYModifier(time, startY, endY, new IEntityModifierListener() {
                @Override
                public void onModifierStarted(final IModifier<IEntity> pModifier, final IEntity pItem) {
                    yourActivity.this.runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            //Do anything here that you want to happen when the Modifier starts - like start a sound playing, etc
                        }
                    });
                }

                @Override
                public void onModifierFinished(final IModifier<IEntity> pEntityModifier, final IEntity pEntity) {
                    yourActivity.this.runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            //Do anything here that you want to happen after the Modifier is through - like stop playing a sound, etc
                            }
                        }
                    });
                }
            }, EaseBounceOut.getInstance()));
Run Code Online (Sandbox Code Playgroud)

EaseBounceOut.getInstance()只是一个例子 - 它导致Sprite最后反弹 - 还有很多其他的EaseFunction可用.