【问题标题】:Resetting a timer in andengine在andengine中重置计时器
【发布时间】:2012-06-18 19:15:26
【问题描述】:

我有这个类,用于在游戏期间设置间隔。

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

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

我该怎么做呢?

【问题讨论】:

    标签: java android andengine


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      相关资源
      最近更新 更多