// Update timers private void UpdateTimer() { var curMs = m_timer.GetMsTime(); var msInterval = m_timer.GetTimeIntervalue(curMs, m_beforeMsTime); m_leftMsTime += msInterval; m_beforeMsTime = curMs; if (m_leftMsTime > 0.0) { var period = m_period; var num = (long)(m_leftMsTime / period); m_curTick += (int)num; m_leftMsTime -= num * period; } m_curMsTime += msInterval; if (m_curTick > m_playerData.MaxTick) { IsStopped = true; TriggerStatusChange(); Reset(); } }