zoukankan      html  css  js  c++  java
  • cocos2d-x 真正的定时器之schedule

    转载请注明,原文地址http://blog.csdn.net/musicvs/article/details/8551066

    正文:

    1. 不调用update函数,调用自己的函数

    其实原理是一样的,我们调用scheduleUpdate的时候,系统默认每帧去调用update函数,但如果我们想调用自己的函数呢?很简单,先给HelloWorldScene添加一个函数:

    1. private:  
    2.     /* 自定义的update函数 */  
    3.     void MutUpdate(float fDelta);  


     

    同样在函数里打日志:

    1. void HelloWorld::MutUpdate( float fDelta )  
    2. {  
    3.     CCLOG("MutUpdate");  
    4. }  


     

    然后我们要添加一句很暴力的代码:

    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的参数就可以了:

    1. this->schedule(schedule_selector(HelloWorld::MutUpdate), 1.0f);  


     

    第二个参数的意思是,每隔多少秒执行一次MutUpdate函数,记住,单位是秒。

  • 相关阅读:
    leetcode390
    leetcode388
    leetcode373
    leetcode368
    leetcode372
    leetcode386
    基于自定义协议的服务器高并发处理之:多线程模型
    基于自定义协议的服务器高并发处理之:多进程模型
    macos下简单的socket服务器+客户端
    Windows下编译Libevent
  • 原文地址:https://www.cnblogs.com/wanqieddy/p/3324107.html
Copyright © 2011-2022 走看看