2012-06-18 119 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) {}