0

当我必须在我的场景中移动一些精灵时(例如,向下 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);
}

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

4

1 回答 1

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

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

于 2012-07-27T20:48:26.790 回答