轉載請注明,原文地址:http://blog.csdn.net/musicvs/article/details/8551066
正文:
1. 不調用update函數,調用自己的函數
其實原理是一樣的,我們調用scheduleUpdate的時候,系統默認每幀去調用update函數,但如果我們想調用自己的函數呢?很簡單,先給HelloWorldScene添加一個函數:
- private:
- /* 自定義的update函數 */
- void MutUpdate(float fDelta);
同樣在函數里打日志:
- void HelloWorld::MutUpdate( float fDelta )
- {
- CCLOG("MutUpdate");
- }
然后我們要添加一句很暴力的代碼:
- bool HelloWorld::init()
- {
- bool bRet = false;
- do
- {
- CC_BREAK_IF(! CCLayer::init());
- //this->scheduleUpdate();
- /* 指定每幀執行自定義的函數 */
- this->schedule(schedule_selector(HelloWorld::MutUpdate));
- bRet = true;
- } while (0);
- return bRet;
- }
我們使用schedule指定了一個自定義的函數,然后我們用調試模式運行項目,將看到以下輸出:
MutUpdate
MutUpdate
MutUpdate
MutUpdate
MutUpdate
MutUpdate
MutUpdate
MutUpdate
我想,沒有什么可以解釋的,就是指定了一個回調函數。
(小若:其實他不懂。)
2. 真正的定時
好喇,我們要真正創建一個定時器了,我們修改一下schedule的參數就可以了:
- this->schedule(schedule_selector(HelloWorld::MutUpdate), 1.0f);
第二個參數的意思是,每隔多少秒執行一次MutUpdate函數,記住,單位是秒。