Cocos定时器


定时器是单线程的,都是由主线程启动并处理的,多个定时器之间不是并行关系,而是递次执行的。

启动:scheduleUpdate(对应一个专属回调函数update(float))和schedule

 

回调函数

void update(float dt) 覆盖父类的虚函数,所以必然是成员函数

void timeout(float dt) 可以用schedule_selector指定的成员函数,也只能有一个float类型的参数

注销:unscheduleUpdate、unschedule、unscheduleAllSelectors()

帧循环定时(无参数)

    bool init()

    {   Layer::init();

        scheduleUpdate();

        // 注销帧循环定时器

         unscheduleUpdate();    }

/*update(float dt)是一个虚函数,当这个节点注册了帧循环定时器时,帧循环会调用该函数

        dt参数是上一次调用该函数到现在调用该函数,经过的时间,以秒为单位*/

    void update(float dt) 其参数必须是float

自定义定时(2个参数,第一个是回调,第二个是定时间隔)

回调函数参数必须有float,返回值void: void timeout(float dt)

参数dt就是间隔时间

        schedule(cocos2d::SEL_SCHEDULE func);如果没有写第二个参数,则逐帧调用

        schedule(cocos2d::SEL_SCHEDULE func, float interval);

        schedule(cocos2d::SEL_SCHEDULE func, float interval, int repeat, float delay);

        scheduleOnce(cocos2d::SEL_SCHEDULE, func, float delay);

 

        unschedule(cocos2d::SEL_SCHEDULE func);

        unscheduleAllSelectors();

可以选择用selector或者用其要求的格式强制转换

schedule((SEL_SCHEDULE)&T010602Schedule::timeout, 1.0f);

        schedule(schedule_selector(T010602Schedule::timeout), .3f);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值