¿Cómo realizar animación en Android AndEngine?

Cuando tengo que mover algún sprite en mi escena (por ejemplo, en 100 px hacia abajo), estoy usando este código:

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

Funciona, pero me pregunto si hay muchas posibilidades correctas y/o más rápidas para hacer esto.

preguntado el 27 de julio de 12 a las 17:07

¿Estás usando AndEngine? -

1 Respuestas

o mire los diversos modificadores disponibles: para moverse hacia arriba o hacia abajo, use un MoveYModifier, algo así como

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() es solo un ejemplo: hace que el Sprite rebote al final; hay muchas otras EaseFunctions disponibles.

Respondido 27 Jul 12, 21:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.