2017-11-16 5 views
0

Actorに進行中のActionがある間に、DragListenerを一時的に無効にする方法がわかりません。私がActorに触れると、進行中のActionが中断し、新しいActionが実行され、Actorの「ドリフト」につながります。例えば私はActorを揺するが、中断されたときは、Actionは、Actorの中断位置に基づいている。 touchUpメソッド内libgdx動作中のタッチを無効にする

アクションの追加:私はActorのRenderメソッド内でこのような何かをしようとした

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

if (this.getActions().size > 0){//or hasActions() 
      this.setTouchable(Touchable.disabled); 
     } 
     else{ 
      this.setTouchable(Touchable.enabled); 
     } 

しかし、それはActorアンタッチャブルの葉!

答えて

1

代わりに何をする必要がありますか?Actions.touchableを使用すると、アクションの開始時にタッチを無効にし、最後にもう一度有効にします。 sequenceまたはparallelを使用して複数のアクションを一緒にストリングすることもできます。

temp.addAction(Actions.sequence(
    Actions.touchable(Touchable.disabled), 
    rotL, 
    rotR, 
    rotBack, 
    Actions.touchable(Touchable.enabled) 
)); 
関連する問題