2014-06-19 3 views
0

스프라이트 (스프라이트 1) 및 카운트 다운 타이머가 있으며 카운트 다운 타이머를 시작할 수있는 방법이 있는지 알고 싶습니다. 만 해당 스프라이트가 만졌어.스프라이트가 만졌을 때만 카운트 다운 타이머를 시작하는 방법

Sprite sprite1; 
int time=10; 
@Override 
public void onPopulateScene(Scene pScene, 
     OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception { 

    sprite1= new Sprite(100, 100, squarer, this.mEngine.getVertexBufferObjectManager()) 

      { 

      @Override 
      public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float X, float Y) 
      { 
       scene.setBackground(new Background(200,200,200)); 

      } 

      }; 
    TimerHandler mtimer= new TimerHandler(0.1f,true,new ITimerCallback() { 

     @Override 
     public void onTimePassed(TimerHandler pTimerHandler) { 
      // TODO Auto-generated method stub 
      time--; 
      if (time==0){ 
       scene.setBackground(new Background(0,0,120)); 
      } 
     } 
    }); 

      this.scene.attachChild(sprite1); 
      this.scene.registerTouchArea(sprite1); 
      this.scene.registerUpdateHandler(mtimer); 
    pOnPopulateSceneCallback.onPopulateSceneFinished(); 

} 
} 

답변

0

전화 당신의 스프라이트의 오버라이드 (override) onareatouched 방법에 타이머가

+0

을 나는 다음 타이머를 부르죠 당신이 나에게 예를 적어주세요 수있는 방법 그것을하는 방법에 – user3661470

0

U는 오버라이드 onAreaTouched에서 타이머를 가져야한다. onAreaTouched 방법에있어서 모든 것은 단지 당신이 스프라이트를 터치하면, 이런 식으로 뭔가를 시도 호출됩니다 (제대로 코드를 확인하지 않은) :

 @Override 
     public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float X, float Y) 
     { 
      scene.setBackground(new Background(200,200,200)); 
      TimerHandler mtimer= new TimerHandler(0.1f,true,new ITimerCallback() { 

       @Override 
       public void onTimePassed(TimerHandler pTimerHandler) { 
       // TODO Auto-generated method stub 
       time--; 
      if (time==0){ 
       scene.setBackground(new Background(0,0,120)); 
      } 
      } 
     }); 
     } 
     };