2012-06-18 5 views
-2

У меня есть этот класс, который я использую для установки интервала во время моей игры.Сброс таймера в andengine

public class Timer implements IUpdateHandler { 
    // =========================================================== 
    // Constants   
    // =========================================================== 

    // ===========================================================   
    // Fields   
    // =========================================================== 
    private ITimerCallback mCallback; 
    private float mInterval; 

    private float mSecondsElapsed; 
    // ===========================================================   
    // Constructors   
    // =========================================================== 
    public Timer(final float pInterval, final ITimerCallback pCallback) { 
      this.mInterval = pInterval; 
      this.mCallback = pCallback; 
    } 
    // ===========================================================   
    // Getter & Setter   
    // =========================================================== 
    public void setInterval(final float pInterval) { 
      this.mInterval = pInterval; 
    } 
    // ===========================================================   
    // Methods for/from SuperClass/Interfaces   
    // =========================================================== 
    @Override 
    public void onUpdate(float pSecondsElapsed) { 
      this.mSecondsElapsed += pSecondsElapsed; 
      if(this.mSecondsElapsed >= this.mInterval) { 
        this.mSecondsElapsed -= this.mInterval; 
        this.mCallback.onTick(); 
      } 
    } 
    @Override 
    public void reset() { 
      this.mSecondsElapsed = 0; 

    } 
    // ===========================================================   
    // Methods   
    // =========================================================== 

    // ===========================================================   
    // Inner and Anonymous Classes   
    // =========================================================== 
    public interface ITimerCallback { 
      public void onTick(); 
    } 

}

Проблема заключается в том, мне нужно найти способ, чтобы приостановить его, или сбросить время полностью, когда мне нужно.

Кто-нибудь знает, как я могу это сделать?

ответ

1

Этот класс имеет метод reset() для этой цели. Если вы хотите приостановить его, вы, скорее всего, захотите добавить в класс private boolean и создать метод pause() для вызова - в методе паузы задано ваше приостановленное логическое значение. Затем измените метод OnUpdate() и добавить if (!paused) { //do rest of onUpdate here }

Вы также, вероятно, нужен метод Возобновить() - или просто сделать один метод, когда вы проходите в состоянии вы хотите, что-то вроде setPause(boolean state) {}

Смежные вопросы