您的位置:首页 > 移动开发 > Cocos引擎

Cocos定时器

2016-03-27 10:37 405 查看



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

启动: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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: