Here is my code.
static float fInitDelay = 1.0f; bool CMyScene::init() { ... m_pDelayTime = DelayTime::create(fInitDelay); m_pSeq = Sequence::create( m_pDelayTime, CallFunc::create(CC_CALLBACK_0(CMyScene::End, this)), nullptr ); m_pSeq->retain(); this->runAction(m_pSeq); } void CMyScene::onKeyPressed(EventKeyboard::Keycode _keyCode, Event* _pEvent) { // toggle delay time float fNewDuration = (m_pDelayTime->getDuration() == 1.0f) ? 2.0f : 1.0f; m_pDelayTime->setDuration(fNewDuration); this->runAction(m_pSeq); } void CMyScene::End() { CCLOG("callback"); }
If I press some key.
When ‘fNewDuration’ value is set to 1.0f, callback works well.
But, ‘fNewDudration’ value is set to 2.0f, callback was not call.
And, If I change ‘fInitDelay’ value to 2.0f.
Any value of ‘fNewDuration’ works well.
Is it some Sequence bug?
I use cocos2d-x v3.9.
I want to do this because I do not want to create an action instance every time.
Thanks…