【问题标题】:How to perform animation in Android AndEngine?如何在 Android AndEngine 中执行动画?
【发布时间】:2012-07-27 16:17:22
【问题描述】:

当我必须在我的场景中移动一些精灵时(例如,向下 100 像素),我使用以下代码:

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);
}

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

【问题讨论】:

  • 你在使用AndEngine吗?

标签: android animation andengine


【解决方案1】:

或查看可用的各种修饰符 - 向上/向下移动,使用 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()));

EaseBounceOut.getInstance() 只是一个示例 - 它会导致 Sprite 在最后反弹 - 还有许多其他 EaseFunction 可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    相关资源
    最近更新 更多