首页 > 其他 > 详细

调度器(scheduler)

时间:2016-04-12 15:57:19      阅读:168      评论:0      收藏:0      [点我收藏+]

调度器(schedule)为游戏提供定时事件和定时调用服务。

调度器(schedule)的功能和事件监听器(eventlistener)的功能有点类似:都是在特定情况下调用某个事先准备好的回调函数。

不同之处在于:事件监听器需要通过手动触发(Trigger)来调用这个准备好的回调函数,而调度器是需要等到游戏运行了一个时间段(delta_time)后来调用这个回调函数

一般会把调度器封装成一个类:

一、需要一个注册回调函数的接口,这个接口的参数可能包括1:time,指需要运行多久后调用注册好的回调函数2,需要调用的回调函数的相关信息

二、需要定义一个结构体来保存,注册的回调函数的整体信息。可能包括:回调的时机(time),函数本身,需要传递的参数等

三、把上面的结构体保存在一个容器中,然后在一个update中遍历这个容器,一旦时机到了,立刻调用。

 

大概就是这样了,具体代码我就不贴了。

 补充:

第三步,其实如果把容器里的元素按回调的时间来排序的话,其实并不需要遍历整个容器,每次只要访问容器的首或者尾元素,比较一下是否到可调用的时间点。到了之后再把首或者尾元素删除。这样就能确保容器的首或者尾元素每次都是最先要调用的回调函数。而不必遍历整个容器。

调度器(scheduler)

原文:http://www.cnblogs.com/dongerlei/p/5382863.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!