在移动andengine时动画Sprite

时间:2012-06-15 15:58:01

标签: android animation sprite andengine move

当我使用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开始了,我想开始操作时我正在点击操纵杆。

1 个答案:

答案 0 :(得分: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);
                    }
                }