2014-07-06 102 views
1

我想暫停一段時間的CCNode,然後再重新開始。 當我單獨使用下面的代碼時,它們會工作,但是當我想要在某個特定時間恢復此CCNode時,按下按鈕不會發揮作用,並且發生斷言失敗(即:pElement-> paused == bPaused)。暫停一段時間的CCNode

//for pausing 
this->pauseSchedulerAndActions(); 

//for resuming 
this->resumeSchedulerAndActions(); 

我使用下面的代碼:

#define TIME_FOR_RESUME 5.0f 
    //function that called when my button click 
    void myClass::myFunc(CCObject * pSender) 
    { 
    this->pauseSchedulerAndActions(); 
    this->scheduleOnce(schedule_selector(myClass::myResumeFunction), TIME_FOR_RESUME); 
    } 

    void myClass::myResumeFunction(float dt) 
    { 
    this->resumeSchedulerAndActions(); 
    } 
+0

它說:暫停調度和行動。 ...我懷疑myResumeFunction是ca LLED。你是什​​麼意思'暫停CCNode'?也許這不是正確的做法。什麼是在節點等... – YvesLeBorg

+0

是的我在myResumeFunction插入一個斷點,但它不會調用,並在此之前斷言失敗。我的意思是暫停所有CCSprite及其調度程序,似乎暫時不存在,然後恢復所有這些。 – HRZ

回答

1

,你可以用這個暫停

this->unscheduleAllSelectors(); 

這對於恢復

this->scheduleUpdate(); 
+0

pause:pauseSchedulerAndActions(); \t \t unscheduleAllSelectors();恢復:resumeSchedulerAndActions(); \t \t scheduleUpdate(); – zszen