Cocos2d-调度器(scheduler)
2016-10-19 20:57
288 查看
继承关系
基础原理
调度器为游戏提供定时时间和定时调用服务,所有Node对象都知道如何调度和取消调度时间,使用调度器有以下几个好处:1、每当Node不再可见或已从场景中移除时,调度器会停止。
2、Cocos2d-x暂停时,调度器也会停止;Cocos2d-x重新开始时,调度器也会自动继续启动。
3、Cocos2d-x封装了一个供各种平台使用的调度器,因此使用此调度器不用关心所设定的定时对象的销毁和停止,以及崩溃的风险。
基础用法
游戏中经常会随时间的变化做一些逻辑的判断,引入调度器就是为了更好的处理动态事件,常用的有三种调度器:1、默认调度器:schedulerUpdate()
2、自定义调度器:schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
3、单次调度器:scheduleOnce(SEL_SCHEDULE selector, float delay)
默认调度器:schedulerUpdate()
默认调度器使用Node的刷新事件update方法,该方法在每帧绘制之前都会被调用一次。由于每帧之间的时间间隔较短,所以每帧刷新一次已足够完成大部分游戏过程中需要的逻辑判断。自定义调度器:schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
在游戏开发中,某些情况下可能不需要频繁的进行逻辑检测,这样可以提高游戏性能。Cocos2d-x提供了自定义调度器,可以实现以一定的时间间隔连续调用某个函数。由于引擎的调度机制,自定义时间间隔必须大于两帧的间隔,否则两帧内的多次调用会被合并成一次调用,所以自定义时间间隔应在0.1秒以上。
调度函数的4个参数为:
1、selector为要添加的事件函数。
2、interval为事件触发时间间隔。
3、repeat为触发一次事件后还会触发的次数,默认值为kRepeatForever,表示无限触发次数。
4、delay表示第一次触发之前的延时。
取消调度器可以用unschedule(SEL_SCHEDULE selector, float delay)。
单次调度器:scheduleOnce(SEL_SCHEDULE selector, float delay)
游戏中如果只想进行一次逻辑检测,可以使用单次调度器,该调度器只会触发一次,用unschedule(SEL_SCHEDULE selector, float delay)来取消触发器。相关文章推荐
- cocos2d-x 3.0 调度器(scheduler)
- Cocos2d-x 调度器 Scheduler
- cocos2d-x 调度器(scheduler)
- cocos2d-x 调度器(scheduler)
- cocos2d-x 调度器(scheduler)介绍
- [Cocos2d-x v3.x官方文档]调度器(scheduler)
- Cocos2d-x 基础概念——调度器(scheduler)
- Cocos2d-Lua 调度器
- Storm系列(七)架构分析之Scheduler-调度器[DefaultScheduler]
- cocos2d-x-3.3-011-调度器
- nova schedule 调度器之FilterScheduler
- Cocos2d-x 之调度器 Scheduler
- JStorm与Storm源码分析(三)--Scheduler,调度器
- Linux IO Scheduler(Linux IO 调度器)
- (5)调度器(scheduler)
- 企业级任务调度框架Quartz 六 任务调度器(Scheduler)
- cocos2d-x 入门之调度器(scheduler)
- Cocos2d-X3.0 刨根问底(六)----- 调度器Scheduler类源码分析
- 关于cocos2d::Scheduler的调用重复次数问题
- 调度器(scheduler) 分类: ios开发 Cocos2d-x 2015-02-05 13:58 199人阅读 评论(0) 收藏