cocos2d-x schedule定时器

11个月前 (03-07) xiaohongmao cocos2d 0评论 已收录 798℃

cocos2dx中有三种定时器:schedule,scheduleUpdate,scheduleOnce

scheduleUpdate

程序会每帧都会自动执行一次默认的Update函数(注:一定是update函数

开启自带的update方法(虚函数,virtual  update(float t)),这个方法会每帧执行一次,默认优先级为0,并且在所有自定义方法执行之前执行(设定的越小,越)。

通过this->scheduleUpdate()把定时器加到节点队列里后,节点会每帧都会调用虚函数:update(void);且一个节点只能有一个update(void)虚函数。

取消(或关闭)自带的update(void)方法(回调函数):this->unscheduleUpdate(); 只能触发虚函数 update( );

 

scheduleOnce

定义一个延迟执行的单次自定义定时器

* selector回调函数

* delay* 延秒数,延delay秒开始行回调,且只回调一次

 

schedule

定义一个自定义的定时器

* selector回调函数

* interval重复间隔时间,重复执行间隔的时间,如果传入0,则表示每帧调用

* repeat重复运行次数,如果传入CC_REPEAT_FOREVER则表示无限循环

* delay延时秒数,延迟delay秒开始执行第一次回调

 

 定义一个立即执行的无限循环的自定义定时器

* selector回调函数

* interval重复间隔时间,重复执行间隔的时间,如果传入0,则表示每帧调用

 

定义了一个无限循环、立即执行并且每帧都会执行的自定义定时器(和scheduleUpdate效果一样,但是会在scheduleUpdate之后执行)

* selector回调函数

使用lambda函数定义一个每帧调用的自定义定时器

* callbacklambda函数

* keylambda函数的Key,用于取消定时器

 

使用lambda函数定义一个每隔interval秒调用的自定义定时器

* callbacklambda函数

* interval重复间隔时间,重复执行间隔的时间,如果传入0,则表示每帧调用

* keylambda函数的Key,用于取消定时器

 

使用lambda函数定义一个自定义定时器

* callbacklambda函数

* interval重复间隔时间,重复执行间隔的时间,如果传入0,则表示每帧调用

* repeat重复运行次数,如果传入CC_REPEAT_FOREVER则表示无限循环

* delay延时秒数,延迟delay秒开始执行第一次回调

* keylambda函数的Key,用于取消定时器

 

取消一个自定义定时器

 

 

博主

这货来去如风,什么鬼都没留下!!!

相关推荐

嗨、骚年、快来消灭0回复。