-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();
    }
}

问题是我需要找到一种方法来暂停它,或者在需要时完全重置时间。

我怎么能这样做呢?

4

1 回答 1

1

该类有一个用于此目的的 reset() 方法。如果你想暂停它,你可能想在类中添加一个私有布尔值并创建一个 pause() 方法来调用 - 在 pause 方法中设置你的暂停布尔值。然后修改 onUpdate() 方法并添加一个if (!paused) { //do rest of onUpdate here }

您可能还需要一个 unPause() 方法 - 或者当您传入您想要的状态时只创建一个方法,例如setPause(boolean state) {}

于 2012-06-19T16:40:09.853 回答