Example #1
0
 private TimerEntity Spawn()
 {
     if (m_EntityPools.Count > 0)
     {
         TimerEntity t = m_EntityPools[m_EntityPools.Count - 1];
         m_EntityPools.RemoveAt(m_EntityPools.Count - 1);
         return(t);
     }
     return(new TimerEntity());
 }
Example #2
0
        /// <summary>
        /// 增加定时器,可以指定循环次数
        /// </summary>
        /// <param name="rate">触发频率(单位毫秒)</param>
        /// <param name="ticks">循环次数,如果是0则不会自动删除</param>
        /// <param name="callBack">触发回调函数</param>
        /// <returns>新定时器id</returns>
        public int AddLoop(long rate, int ticks, Action <int, string> callBack, string param = "")
        {
            if (ticks <= 0)
            {
                ticks = 0;
            }
            TimerEntity newTimer = this.Spawn();

            newTimer.Init(++m_idCounter, rate, ticks, callBack, param);
            m_Timers.Add(newTimer);
            return(newTimer.id);
        }
Example #3
0
 private void Despawn(TimerEntity t)
 {
     m_EntityPools.Add(t);
 }