Cocos2d-x Schedule定時器的使用實例
更新時間:2014年09月12日 08:47:41 作者:皂莢花
這篇文章主要介紹了Cocos2d-x Schedule定時器的使用實例,本文的講解內(nèi)容包含在代碼注釋中,需要的朋友可以參考下
schedule可以實現(xiàn)定時器的功能,就是每隔一段時間做什么事情,schedule的調(diào)用者是節(jié)點,所有的節(jié)點都可以調(diào)用schedule函數(shù),參數(shù)需要傳入一個函數(shù)(schedule_selector一個新的選擇器),在函數(shù)中可以完成碰撞檢測等功能。下面就具體來看看這個函數(shù)的用法吧。
bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //schedule傳入一個參數(shù)的時候每一幀都會調(diào)用show函數(shù) //this->schedule(schedule_selector(HelloWorld::show)); //以下的schedule方法中,傳入的第二個參數(shù)是時間,代表多長時間調(diào)用一次show函數(shù) //this->schedule(schedule_selector(HelloWorld::show),1.0); //schedule方法中的前倆個參數(shù)和上邊的相同,第三個參數(shù)是方法調(diào)用的重復(fù)次數(shù),重復(fù)倆次加剛開始的一次 //總共調(diào)用了三次,3.0代表執(zhí)行下邊的語句后多長時間開始調(diào)用函數(shù)show,就是delay的時間 //this->schedule(schedule_selector(HelloWorld::show),1.0,2,3.0); //scheduleUpdate每隔一幀都會調(diào)用update方法,需要我們聲明一下update方法 this->scheduleUpdate(); bRet = true; } while (0); return bRet; } void HelloWorld::update(float dt) { static int i = 0; if(i == 100) { //下次不再調(diào)用update方法,但是CCLog函數(shù)還是會執(zhí)行的。 //this->unscheduleUpdate(); //以下函數(shù)實現(xiàn)相同的功能,它會將這個層的所以schedule方法都停止調(diào)用 this->unscheduleAllSelectors(); } CCLog("i = %d",++i); } //show函數(shù)必須含有一個float類型的參數(shù) void HelloWorld::show(float dt) { static int i = 0; CCLog("time = %d",++i); if(i == 10) { //unschedule停止傳入的參數(shù)代表的方法調(diào)用 //以下代碼不一定需要寫在這個show方法中 this->unschedule(schedule_selector(HelloWorld::show)); } }
相關(guān)文章
C語言中你不知道的隱式類型轉(zhuǎn)換規(guī)則詳解
在C語言中,類型轉(zhuǎn)換的方式一般可分為隱式類型轉(zhuǎn)換和顯示類型轉(zhuǎn)換(也稱為強制類型轉(zhuǎn)換),其中隱式類型轉(zhuǎn)換由編譯器自動進行,不需要程序員干預(yù),本文給大家詳細介紹了C語言中隱式類型轉(zhuǎn)換規(guī)則,需要的朋友可以參考下2024-01-01C++實現(xiàn)LeetCode(23.合并k個有序鏈表)
這篇文章主要介紹了C++實現(xiàn)LeetCode(23.合并k個有序鏈表),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07C++中字符串全排列算法及next_permutation原理詳解
這篇文章主要為大家詳細介紹了C++中字符串全排列(遞歸法)和(迭代法)以及next_permutation底層原理,文中的示例代碼講解詳細,感興趣的可以了解一下2023-02-02