我无法弄清楚,DragListener
上正在进行的Action
时如何临时停用Actor
。当正在进行Actor
时我触摸Action
时,它会被中断并执行新的Action
,这会导致Actor
的“漂移”。例如我摇动Actor
,但当它被中断时,以下Action
基于Actor
的中断位置。
在touchUp
方法中添加操作:
RotateByAction rotL = new RotateByAction();
rotL.setAmount(-3);
rotL.setDuration(0.05f);
RotateByAction rotR = new RotateByAction();
rotR.setAmount(6);
rotR.setDuration(0.05f);
RotateByAction rotBack = new RotateByAction();
rotBack.setAmount(-3);
rotBack.setDuration(0.05f);
SequenceAction seq = new SequenceAction();
seq.addAction(rotL);
seq.addAction(rotR);
seq.addAction(rotBack);
temp.setOrigin(temp.getWidth()/2,temp.getHeight()/2);
temp.addAction(seq);
我尝试在Actor
:
if (this.getActions().size > 0){//or hasActions()
this.setTouchable(Touchable.disabled);
}
else{
this.setTouchable(Touchable.enabled);
}
但这让Actor
无法接触!
答案 0 :(得分:2)
您应该做的是使用Actions.touchable
在动作开始时禁用触摸,然后在结束时再次启用它。您还可以使用sequence
或parallel
将多个操作串在一起。
temp.addAction(Actions.sequence(
Actions.touchable(Touchable.disabled),
rotL,
rotR,
rotBack,
Actions.touchable(Touchable.enabled)
));