cocos2d-x 真正的定時器之schedule


轉載請注明,原文地址http://blog.csdn.net/musicvs/article/details/8551066

正文:

 

 

 

1. 不調用update函數,調用自己的函數

其實原理是一樣的,我們調用scheduleUpdate的時候,系統默認每幀去調用update函數,但如果我們想調用自己的函數呢?很簡單,先給HelloWorldScene添加一個函數:

[cpp]  view plain copy print ?
 
  1. private:  
  2.     /* 自定義的update函數 */  
  3.     void MutUpdate(float fDelta);  


 

同樣在函數里打日志:

[cpp]  view plain copy print ?
 
  1. void HelloWorld::MutUpdate( float fDelta )  
  2. {  
  3.     CCLOG("MutUpdate");  
  4. }  


 

然后我們要添加一句很暴力的代碼:

[cpp]  view plain copy print ?
 
  1. bool HelloWorld::init()  
  2. {  
  3.     bool bRet = false;  
  4.     do   
  5.     {  
  6.         CC_BREAK_IF(! CCLayer::init());  
  7.   
  8.         //this->scheduleUpdate();  
  9.   
  10.         /* 指定每幀執行自定義的函數 */  
  11.         this->schedule(schedule_selector(HelloWorld::MutUpdate));  
  12.         bRet = true;  
  13.     } while (0);  
  14.   
  15.     return bRet;  
  16. }  


 

我們使用schedule指定了一個自定義的函數,然后我們用調試模式運行項目,將看到以下輸出:

MutUpdate

MutUpdate

MutUpdate

MutUpdate

MutUpdate

MutUpdate

MutUpdate

MutUpdate

我想,沒有什么可以解釋的,就是指定了一個回調函數。

(小若:其實他不懂。)

 

2. 真正的定時

好喇,我們要真正創建一個定時器了,我們修改一下schedule的參數就可以了:

[java]  view plain copy print ?
 
  1. this->schedule(schedule_selector(HelloWorld::MutUpdate), 1.0f);  


 

第二個參數的意思是,每隔多少秒執行一次MutUpdate函數,記住,單位是秒。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM