public void HandleGameUpdate()
        {
            if (this.frameCounter >= TimerManager.FrameUpdateFreq)
            {
                this.frameCounter = 0;

                for (int i = 0; i < this.RunningTimers.Count; i++)
                {
                    TimerBase abstractTimer = this.RunningTimers[i];
                    abstractTimer.Update(TimerManager.FrameUpdateFreq);

                    if (abstractTimer.IsExpired())
                    {
                        if (this.InvokeTimerCallback(abstractTimer))
                        {
                            abstractTimer.Reset();
                        }
                        else
                        {
                            this.RunningTimers.RemoveAt(i--);
                        }
                    }
                }
            }

            this.frameCounter++;
        }
 public void StartTimer(TimerBase timer)
 {
     if (!this.IsTimerRunning(timer))
     {
         this.RunningTimers.Add(timer);
         timer.Reset();
     }
 }
示例#3
0
 public void StartOrResetTimer(TimerBase timer)
 {
     if (this.IsTimerRunning(timer))
     {
         timer.Reset();
     }
     else
     {
         this.AddTimer(timer);
     }
 }
 public void StartTimer(TimerBase timer)
 {
     if (!this.IsTimerRunning(timer)) {
         timer.Reset();
         this.AddTimer(timer);
     }
 }
 public void StartOrResetTimer(TimerBase timer)
 {
     if (this.IsTimerRunning(timer))
         timer.Reset();
     else
         this.AddTimer(timer);
 }