【问题标题】:Animate Sprite while is moving andengine在移动和引擎时为 Sprite 设置动画
【发布时间】:2012-06-18 17:38:33
【问题描述】:

我想在使用 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 在我取消点击操纵杆时开始,我想在我点击操纵杆时开始。

【问题讨论】:

    标签: android animation sprite andengine move


    【解决方案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);
                        }
                    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多