2017-11-16 2 views
0

Actor에 진행중인 Action이있는 동안 DragListener을 일시적으로 사용 중지하는 방법을 알아낼 수 없습니다. Actor을 만지면 진행중인 Action이 중단되고 새로운 Action이 실행되어 Actor의 "드리프트"가 발생합니다. 예 : 나는 Actor을 흔들었지만 중단되었을 때 다음 ActionActor의 중단 된 위치를 기반으로합니다. touchUp 방법 내부동작이 진행 중일 때 libgdx 사용 중지

추가 작업 : 나는 Actor의 렌더링 방법 내에서 이런 일을하려고 노력

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) 
)); 
관련 문제