2012-06-18 57 views
-2

我有這個課程用於在我的遊戲期間設置一個時間間隔。在引擎中重置計時器

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()方法。如果你想暫停它,你可能想要添加一個私有布爾類到類中,並創建一個pause()方法來調用 - 在暫停方法中設置暫停的布爾值。然後修改的onUpdate()方法,並添加一個if (!paused) { //do rest of onUpdate here }

您也可能會需要一個取消暫停()方法 - 或者只是做了一個方法,當你在你想要的狀態傳遞,像setPause(boolean state) {}