示例#1
0
        public static void Update(float totalTime)
        {
            TimerManager pTimerMan = TimerManager.privGetInstance();

            Debug.Assert(pTimerMan != null);

            pTimerMan.mCurrentTime = totalTime;

            TimeEvent pTimeEvent = (TimeEvent)pTimerMan.baseGetActive();
            TimeEvent pNextEvent = null; // for iterating

            while (pTimeEvent != null)
            {
                //cache
                pNextEvent = (TimeEvent)pTimeEvent.pNext;

                if (pTimerMan.mCurrentTime >= pTimeEvent.GetTriggerTime())
                {
                    // do it
                    pTimeEvent.Process();

                    //remove it
                    pTimerMan.baseRemove(pTimeEvent);
                }

                // go to next
                pTimeEvent = pNextEvent;
            }
        }
示例#2
0
        public static void PauseUpdate(float delta)
        {
            // Get the instance
            TimerManager pMan = TimerManager.privGetInstance();

            Debug.Assert(pMan != null);

            // walk the list
            TimeEvent pEvent = (TimeEvent)pMan.baseGetActive();

            while (pEvent != null)
            {
                pEvent.triggerTime += delta;
                // advance the pointer
                pEvent = (TimeEvent)pEvent.pNext;
            }
        }