2012-04-26 4 views
1

나는 andengine.에 의해 게임을 프로그래밍하고 있습니다. 나는 Runnable으로 루프를 만들었습니다. 그리고 wait (초) 함수를 만들고 싶습니다.
예를 들어, 스프라이트로 10 개의 작은 그림이 있습니다 .1 초 속도로 MoveModifier에서 (100,100)에서 (100,400)으로 이동합니다.하지만 원하는 것은 프로그램이 5 초에서 6 초 사이의 x 초를 기다립니다. - 내가 어떻게 할 수 있니?andengine의 대기 함수?

+0

게시판 ... – dymmeh

+0

예를 들어 sprites.they가 1 초 속도로 MoveModifier에서 (100,100)에서 (100,400)으로 이동하면서 10 개의 작은 그림이 있습니다.하지만 원하는 것은 다음과 같습니다. 프로그램이 x를 기다립니다. 5와 6 사이의 초 그림.? – Kadir

답변

3

지연 조정기.

(16 개의 문자)

+0

그래, 그게 내가 말한거야 - 그럼 그것은 사소한 대답, 롤로 간주 되었기 때문에 의견으로 변환 있어요. – jmroyalty

7

지연 수정하는 또 다른 방법은 TimerHander를 사용하는 것이다. 타이머 핸들러는 지정된 지연 시간 후에 정의한 기능을 수행합니다. TimerHandler의 멋진 기능은 안드로이드 처리기를 사용하는 것과는 달리, 게임 엔진이 일시 중지되었다가 다시 시작될 때 TimerHandler가 일시 중지되었다가 다시 시작된다는 것입니다. 여기

스네이크 게임에서 사용되는 TimerHandler가 andengine 예에 포함 된이되는 허용 대답에도 불구하고

/* Make the Snake move every 0.5 seconds. */ 
     this.mScene.registerUpdateHandler(new TimerHandler(0.5f, true, new ITimerCallback() { 
      @Override 
      public void onTimePassed(final TimerHandler pTimerHandler) { 
       if(SnakeGameActivity.this.mGameRunning) { 
        try { 
         SnakeGameActivity.this.mSnake.move(); 
        } catch (final SnakeSuicideException e) { 
         SnakeGameActivity.this.onGameOver(); 
        } 

        SnakeGameActivity.this.handleNewSnakePosition(); 
       } 
      } 
     })); 

== 업데이트 == , 나는 니콜라스 Gramlich에 의한 대답은 다음과 같습니다 믿는다 보다 나은. 물론 니콜라스 그램 리치 (Nicolas Gramlich) 였지만, 그는 실제로 그의 답변을 문서화하지는 않았지만, 백과 사전적인 "Andengine Examples"에서 찾아보기를 기대합니다. 따라서 여기에 DelayModifier를 사용하는 방법이 있습니다. Delay 수정자는 이미 이동 수정자를 사용하고 있으므로 체인 수정자를 함께 사용하는 것이 이상적이므로 위에서 설명한 내용에 이상적인 선택입니다.

여기 andengine 예에서 예입니다 (* 저자 : 니콜라스 Gramlich) 검사 할 https://code.google.com/p/andengineexamples/source/browse/src/org/anddev/andengine/examples/EntityModifierExample.java?r=2b26f37114e50616bfcbb8e292e20988efd1acd6

부분은 : 당신은 당신이 두 수식 사이의 지연을 넣을 수 있음을 알 수

new SequenceEntityModifier(
    new RotationModifier(1, 0, 90), 
    new AlphaModifier(2, 1, 0), 
    new AlphaModifier(1, 0, 1), 
    new ScaleModifier(2, 1, 0.5f), 
    new DelayModifier(0.5f), 
    new ParallelEntityModifier(
        new ScaleModifier(3, 0.5f, 5), 
        new RotationByModifier(3, 90) 
    ), 
    new ParallelEntityModifier(
        new ScaleModifier(3, 5, 1), 
        new RotationModifier(3, 180, 0) 
    ) 
) 

지연 수정 자. 그러나 지연 수정자는 지연이 수정 자의 일부인 경우에만 작동하며 사용자가 작성한 함수가 아닙니다. 이 경우 TimerHandler 솔루션이 대신 해줍니다.