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函数,记住,单位是秒。

你可能感兴趣的:(cocos2d-x)