2012-06-15 132 views
0

我想在使用DigitalController移動時動畫精靈。我有一個代碼,並且工作正常移動播放器:在移動引擎時動畫雪碧

@Override 
public void onControlChange(final BaseOnScreenControl pBaseOnScreenControl, final float pValueX, final float pValueY) { 
    //Evitar que se salga 
    int velocidad = 200; 

    if(pValueX>0) {//Derecha 
     player.animate(new long[]{200, 200, 200}, 0, 2, true); 
    } else { 
     if(pValueX<0){//Izquierda 
      player.animate(new long[]{200, 200, 200}, 3, 5, true); 
      } 
    } 

    /* Sin salir de la cámara */ 
    if (player.getX()<=0) { 
      player.setX(player.getWidth()); 
    } else if((player.getX()+player.getWidth())>=CAMERA_WIDTH){ 
      player.setX(CAMERA_WIDTH-(player.getWidth()*2)); 
    } 

    physicsHandler.setVelocity(pValueX * velocidad, pValueY); 
} 

如果P值是1.0是正確的,如果pvalueX爲-1.0留,我不想向上或向下移動,只有左/右。問題在於,當我重置操縱桿時,player.animate開始,而當我正在敲擊操縱桿時我想開始。

回答

1

嗨解決我的問題。

的想法是使用sprite.isAnimationRunning(),並設置循環的動畫設置爲false:

if(!player.isAnimationRunning()) 
       if(pValueX>0){//Derecha 
        player.animate(new long[]{200, 200, 200}, 0, 2, false); 
       }else{ 
        if(pValueX<0){//Izquierda 
         player.animate(new long[]{200, 200, 200}, 3, 5, false); 
        } 
       }