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));
}
}