Cocos2d-x学习笔记(十六)之 定时器(时间调度)
2013-08-23 14:17
387 查看
在游戏中,时常需要隔一段时间更新一些数据或者是人物位置,Cocosd-x提供了一个很好的功能给我们使用,那就是schedule,它是什么东西?我们可以简单地认为它是定时器(时间调度),是单线程的定时器,所有CCNode 类的子类都有这样的函数。使用示例如下:
还有一种固定的调用方式,就是使用scheduleUpdate 会在每帧调用一次update 方法,只要重载update 方法即可。
当然还有一个定时器的方法,那就是scheduleOnce,多少秒后只执行一次。
好了,定时器介绍到这里就算结束了。
//schedule_selector 选择器将调用函数名称传进来。第二个参数是时间间隔 schedule(schedule_selector(调用函数), 0.5f); //定义上面函数以后就会隔一段时间调用一次该函数,直到unschedule 被调用。这句被调用,之前schedule 的时间调度将结束。 unschedule(schedule_selector(要取消的调用函数)); // 暂停schedule m_pPausedTargets = pDirector->getScheduler()->pauseAllTargets(); CC_SAFE_RETAIN(m_pPausedTargets); // 重新启动schedule pDirector->getScheduler()->resumeTargets(m_pPausedTargets); CC_SAFE_RELEASE_NULL(m_pPausedTargets); //使用unscheduleAllSelectors()可以使所有schedule停止. CCDirector::sharedDirector()->getScheduler()->unscheduleAllSelectors();
还有一种固定的调用方式,就是使用scheduleUpdate 会在每帧调用一次update 方法,只要重载update 方法即可。
//在init函数中加入,把scheduleUpdate加入后,在每帧都会调用update函数。 this->scheduleUpdate(); //参数是上一次调用这个函数到本次调用这个函数,中间间隔了多少秒 void HelloWorld::update( float fDelta ) { }
当然还有一个定时器的方法,那就是scheduleOnce,多少秒后只执行一次。
//5秒后执行函数,只执行一次。参数:执行函数、延迟多少秒。表示多少秒之后开始执行这个函数,并且只执行一次。 scheduleOnce(schedule_selector(执行函数), 5.0f);
好了,定时器介绍到这里就算结束了。
相关文章推荐
- 【Cocos2d-X开发学习笔记】第11期:时间调度schedule函数的使用
- Cocos2d-X 学习笔记 8 时间调度
- Cocos2d-x 3.2 学习笔记(十六)保卫萝卜 游戏主循环与定时器
- cocos2d-x 菜鸟学习笔记十六(简单的碰撞检测 实践篇 中)
- quick-cocos2d-x学习笔记—定时器
- Cocos2d-x学习笔记(六) 定时器Schedule的简单应用
- Linux内核学习笔记八——定时器和时间管理
- Linux内核学习笔记八——定时器和时间管理
- Cocos2d-x学习笔记(十六)-------->Cocos2d-x引擎中的网格地图
- Cocos2D-X开发学习笔记2:定时器
- 【Cocos2d-x3.0学习笔记 07】游戏时间到LitterRunner02
- 我的Cocos2d-x学习笔记(十)定时调度器(scheduleUpdate、scheduleOnce、schedule)
- 我的Cocos2d-x学习笔记(十六)动作
- 内核定时器和时间管理学习笔记
- (笔记)Linux内核学习(八)之定时器和时间管理
- 【Cocos2d-x3.0学习笔记 06】游戏时间到LitterRunner01
- Linux内核学习笔记八——定时器和时间管理
- Linux内核学习笔记八——定时器和时间管理
- 我的Cocos2d-x学习笔记(二十二)CCTextFieldTTF (文字输入)、CCTextFieldDelegate(输入通知事件)
- 【cocos2d-x笔记】 ios7屏蔽时间状态栏