2012-07-27 5 views
0

Quand je dois déplacer un peu sprite sur ma scène (par exemple, sur 100px vers le bas), je suis en utilisant ce code:Comment effectuer une animation dans Android AndEngine?

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

Il fonctionne, mais je me demande s'il y a beaucoup correct et/ou plus possibilités rapides pour le faire.

+0

Utilisez-vous AndEngine? –

Répondre

5

ou regarder les différents Modificateurs disponibles - pour déplacer vers le haut/bas, utilisez un MoveYModifier - quelque chose comme

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

Le EaseBounceOut.getInstance() est juste un exemple - il provoque le Sprite de rebondir à la fin - il y a beaucoup d'autres EaseFunctions disponibles.

Questions connexes