public void Unschedule(SEL_SCHEDULE selector) { // explicit nil handling if (selector == null) { return; } m_pScheduler.UnscheduleSelector(selector, this); }
public void Unschedule(Action <float> selector) { // explicit nil handling if (selector == null) { return; } m_pScheduler.UnscheduleSelector(selector, this); }
/* * public CCTimer(int scriptHandler, float seconds) * { * m_nScriptHandler = scriptHandler; * Elapsed = -1; * Interval = seconds; * } */ #region SelectorProtocol Members public void Update(float dt) { if (Elapsed == -1) { Elapsed = 0; m_nTimesExecuted = 0; } else { if (m_bRunForever && !m_bUseDelay) { //standard timer usage Elapsed += dt; if (Elapsed >= Interval) { if (Selector != null) { Selector(Elapsed); } /* * if (m_nScriptHandler != 0) * { * CCScriptEngineManager::sharedManager()->getScriptEngine()->executeSchedule(this, m_fElapsed); * } */ Interval = OriginalInterval - (Elapsed - Interval); } } else { //advanced usage Elapsed += dt; if (m_bUseDelay) { if (Elapsed >= m_fDelay) { if (Selector != null) { Selector(Elapsed); } /* * if (m_nScriptHandler != 0) * { * CCScriptEngineManager::sharedManager()->getScriptEngine()->executeSchedule(this, m_fElapsed); * } */ Elapsed = Elapsed - m_fDelay; m_nTimesExecuted += 1; m_bUseDelay = false; } } else { if (Elapsed >= Interval) { if (Selector != null) { Selector(Elapsed); } /* * if (m_nScriptHandler) * { * CCScriptEngineManager::sharedManager()->getScriptEngine()->executeSchedule(m_nScriptHandler, m_fElapsed); * } */ Interval = OriginalInterval - (Elapsed - Interval); Elapsed = 0; m_nTimesExecuted += 1; } } if (m_nTimesExecuted > m_nRepeat) { //unschedule timer _scheduler.UnscheduleSelector(Selector, Target); } } } }