Beispiel #1
0
 /// <summary>
 /// Removes the ticker.
 /// </summary>
 /// <param name="ticker">Ticker.</param>
 public void RemoveTicker(ITicker ticker)
 {
     for (int i = 0; i < tickerList.Count; i++)
     {
         TickVO t = tickerList[i] as TickVO;
         if (t.ticker == ticker)
         {
             t.ticker = null;
         }
     }
 }
Beispiel #2
0
 /// <summary>
 /// Determines whether this instance has ticker the specified ticker.
 /// </summary>
 /// <returns><c>true</c> if this instance has ticker the specified ticker; otherwise, <c>false</c>.</returns>
 /// <param name="ticker">Ticker.</param>
 public bool HasTicker(ITicker ticker)
 {
     for (int i = 0; i < tickerList.Count; i++)
     {
         TickVO t = tickerList[i] as TickVO;
         if (t.ticker == ticker)
         {
             return(true);
         }
     }
     return(false);
 }
Beispiel #3
0
	/// <summary>
	/// Adds the ticker.
	/// </summary>
	/// <param name="ticker">Ticker.</param>
	/// <param name="delayMSTime">Delay MS time.</param>
	public void AddTicker(ITicker ticker, int delayMSTime = -1){
		uint lastMSTimeStamp = (uint)(Time.realtimeSinceStartup * 1000);
		TickVO tempTicker;
		if (HasTicker(ticker)) {
			//如果已经存在,那么更新下他
			tempTicker = GetTicker(ticker);
		} else {
			//没有则新建一个
			tempTicker = new TickVO();
			tickerList.Add(tempTicker);
		}
		tempTicker.ticker = ticker;
		tempTicker.delayMSTime = delayMSTime;
		tempTicker.lastMSTimeStamp = lastMSTimeStamp;
	}
Beispiel #4
0
 private TickVO GetTicker(ITicker ticker)
 {
     if (tickerList == null)
     {
         return(null);
     }
     for (int i = 0; i < tickerList.Count; i++)
     {
         TickVO t = tickerList[i] as TickVO;
         if (t.ticker == ticker)
         {
             return(t);
         }
     }
     return(null);
 }
Beispiel #5
0
    /// <summary>
    /// Adds the ticker.
    /// </summary>
    /// <param name="ticker">Ticker.</param>
    /// <param name="delayMSTime">Delay MS time.</param>
    public void AddTicker(ITicker ticker, int delayMSTime = -1)
    {
        uint   lastMSTimeStamp = (uint)(Time.realtimeSinceStartup * 1000);
        TickVO tempTicker;

        if (HasTicker(ticker))
        {
            //如果已经存在,那么更新下他
            tempTicker = GetTicker(ticker);
        }
        else
        {
            //没有则新建一个
            tempTicker = new TickVO();
            tickerList.Add(tempTicker);
        }
        tempTicker.ticker          = ticker;
        tempTicker.delayMSTime     = delayMSTime;
        tempTicker.lastMSTimeStamp = lastMSTimeStamp;
    }
Beispiel #6
0
    // Update is called once per frame
    /// <summary>
    /// Update this instance.
    /// </summary>
    public void Update()
    {
        if (tickerList == null)
        {
            return;
        }
        uint currentMSTimeStamp = (uint)(Time.realtimeSinceStartup * 1000);

///		uint delay = (currentMSTimeStamp - prevMSTimeStamp);

        for (int i = 0; i < tickerList.Count; i++)
        {
            TickVO t = tickerList[i] as TickVO;
            if (t.ticker == null)
            {
                continue;
            }
            if (t.delayMSTime == -1 || currentMSTimeStamp - t.lastMSTimeStamp >= t.delayMSTime)
            {
                //当符合大于延迟时间,那么调用下
                t.ticker.OnTick();
                t.lastMSTimeStamp = currentMSTimeStamp;
            }
        }
///		prevMSTimeStamp = currentMSTimeStamp;

        //清理下要删除的TickVO
        for (int i = 0; i < tickerList.Count; i++)
        {
            TickVO removeTick = tickerList[i] as TickVO;
            if (removeTick.ticker == null)
            {
                tickerList.Remove(removeTick);
                break;
            }
        }
    }