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