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

如果 pValue 是 1.0 是正确的,如果 pvalueX 是 -1.0 是左,我不想向上或向下移动,只能向左/向右移动。问题是当我松开操纵杆时 player.animate 开始,我想在我敲击操纵杆时开始。

4

1 回答 1

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);
                    }
                }
于 2012-06-15T18:04:06.947 回答