2017-12-25 4 views
0

나는 시퀀스 액션을 반복하고 싶은 화살표라는 액터가 있습니다.Libgdx에서 시퀀스 작업 반복하기

이 화살표는 액터를 가리키며 클릭하면 화살표가 희미 해집니다.

여기 내 코드입니다 :

Action moving = Actions.sequence(
       (Actions.moveTo(arrow.getX(), arrow.getY() - 35, 1)), 
       (Actions.moveTo(arrow.getX(), arrow.getY(), 1))); 
arrow.addAction(moving); 
actor.addListener(new ClickListener() { 
      @Override 
      public void clicked(InputEvent event, float x, float y) { 
       arrow.addAction(Actions.fadeOut(1)); 
      } 
     }); 

코드가 잘 작동하지만 난 행동 untile 배우 클릭 '이동'반복합니다.

나는이 질문 Cannot loop an action. libGDX에 RepeatAction에 대해 읽어하지만 난 Actions.forever()으로,

답변

1

당신이 경우 RepeatAction를 사용하여 적용 할 수있는 방법을 몰랐다 :

final Action moving = Actions.forever(Actions.sequence(
     (Actions.moveTo(arrow.getX(), arrow.getY() - 35, 1)), 
     (Actions.moveTo(arrow.getX(), arrow.getY(), 1)))); 
arrow.addAction(moving); 
actor.addListener(new ClickListener() { 
    @Override 
    public void clicked(InputEvent event, float x, float y) { 
     // you can remove moving action here 
     arrow.removeAction(moving); 
     arrow.addAction(Actions.fadeOut(1f)); 
    } 
}); 

당신이 arrow을 제거하려면 페이드 아웃 한 후 Stage에서 RunnableAction을 사용할 수 있습니다.

arrow.addAction(Actions.sequence(
     Actions.fadeOut(1f), Actions.run(new Runnable() { 
      @Override 
      public void run() { 
       arrow.remove(); 
      } 
     })) 
);