Ejemplo n.º 1
0
        public void Pause()
        {
            if (mIsPause)
            {
                return;
            }

            mLeftDelayTime = -1;
            //暂停
            if (mTimeItem != null)
            {
                mLeftDelayTime = mTimeItem.SortScore - QFramework.Timer.Instance.currentScaleTime;
                mTimeItem.Cancel();
                mTimeItem = null;
            }

            mIsPause = true;
            if (mSource.IsNotNull())
            {
                mSource.Pause();
            }
        }
Ejemplo n.º 2
0
        public void Dump(int min = 0)
        {
            if (!SHOW_LOG)
            {
                return;
            }

            StringBuilder builder = new StringBuilder();

            builder.AppendLine("Begin Dump Time Debugger :" + m_Name);
            builder.AppendLine();
            for (int i = 0; i < m_EndTimeLists.Count; ++i)
            {
                TimeItem item = m_EndTimeLists[i];
                if (item.passTime > min)
                {
                    builder.AppendLine(string.Format("#      {2}: [PassTime:{0}, PassTicks:{1}]", item.passTime, item.passTicks, item.name));
                }
            }
            builder.AppendLine();
            builder.AppendLine("End Dump Time Debugger :" + m_Name);

            Log.W(builder.ToString());
        }
Ejemplo n.º 3
0
 public void Post2Really(TimeItem item)
 {
     item.sortScore = m_CurrentUnScaleTime + item.DelayTime();
     m_UnScaleTimeHeap.Insert(item);
 }
Ejemplo n.º 4
0
 public void Post2Scale(TimeItem item)
 {
     item.sortScore = m_CurrentScaleTime + item.DelayTime();
     m_ScaleTimeHeap.Insert(item);
 }
Ejemplo n.º 5
0
        public void UpdateMgr()
        {
            TimeItem item = null;

            m_CurrentUnScaleTime = Time.unscaledTime;
            m_CurrentScaleTime   = Time.time;

            #region  受缩放影响定时器更新
            while ((item = m_UnScaleTimeHeap.Top()) != null)
            {
                if (!item.enable)
                {
                    m_UnScaleTimeHeap.Pop();
                    continue;
                }

                if (item.sortScore < m_CurrentUnScaleTime)
                {
                    m_UnScaleTimeHeap.Pop();

                    item.OnTimeTick();

                    if (item.enable && item.NeedRepeat())
                    {
                        Post2Really(item);
                    }
                }
                else
                {
                    break;
                }
            }
            #endregion

            #region 受缩放影响定时器更新
            while ((item = m_ScaleTimeHeap.Top()) != null)
            {
                if (!item.enable)
                {
                    m_ScaleTimeHeap.Pop();
                    continue;
                }

                if (item.sortScore < m_CurrentScaleTime)
                {
                    m_ScaleTimeHeap.Pop();

                    item.OnTimeTick();

                    if (item.enable && item.NeedRepeat())
                    {
                        Post2Scale(item);
                    }
                }
                else
                {
                    break;
                }
            }
            #endregion
        }