Cocos2d-x Schedule准時器的應用實例。本站提示廣大學習愛好者:(Cocos2d-x Schedule准時器的應用實例)文章只能為提供參考,不一定能成為您想要的結果。以下是Cocos2d-x Schedule准時器的應用實例正文
schedule可以完成准時器的功效,就是每隔一段時光做甚麼工作,schedule的挪用者是節點,一切的節點都可以挪用schedule函數,參數須要傳入一個函數(schedule_selector一個新的選擇器),在函數中可以完成碰撞檢測等功效。上面就詳細來看看這個函數的用法吧。
bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //schedule傳入一個參數的時刻每幀都邑挪用show函數 //this->schedule(schedule_selector(HelloWorld::show)); //以下的schedule辦法中,傳入的第二個參數是時光,代表多長時光挪用一次show函數 //this->schedule(schedule_selector(HelloWorld::show),1.0); //schedule辦法中的前倆個參數和上邊的雷同,第三個參數是辦法挪用的反復次數,反復倆次加剛開端的一次 //總共挪用了三次,3.0代表履行下邊的語句後多長時光開端挪用函數show,就是delay的時光 //this->schedule(schedule_selector(HelloWorld::show),1.0,2,3.0); //scheduleUpdate每隔一幀都邑挪用update辦法,須要我們聲明一下update辦法 this->scheduleUpdate(); bRet = true; } while (0); return bRet; } void HelloWorld::update(float dt) { static int i = 0; if(i == 100) { //下次不再挪用update辦法,然則CCLog函數照樣會履行的。 //this->unscheduleUpdate(); //以下函數完成雷同的功效,它會將這個層的所以schedule辦法都停滯挪用 this->unscheduleAllSelectors(); } CCLog("i = %d",++i); } //show函數必需含有一個float類型的參數 void HelloWorld::show(float dt) { static int i = 0; CCLog("time = %d",++i); if(i == 10) { //unschedule停滯傳入的參數代表的辦法挪用 //以下代碼紛歧定須要寫在這個show辦法中 this->unschedule(schedule_selector(HelloWorld::show)); } }