关于游戏中的调度器(含使用说明).docVIP

关于游戏中的调度器(含使用说明).doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

关于游戏中的

关于游戏中的

调度器

2019-2020版

内部资料注意保管

公司简介商业计划书创业计划书节日庆典新品发布会创业融资项目介绍模板策划项目汇报市场营销活动策划工作计划策划书营销管理节日策划推广策划策划方案商务策划工作汇报企业报告企业宣讲校园宣讲总结报告总结汇报个人总结工作总结工作报告模板教育教学教育培训教学课件主题教育班会育人教学计划班会课件教学研究模板家长会思想教育小学教学中学教学大学教学幼儿教学

公司简介商业计划书创业计划书节日庆典新品发布会创业融资项目介绍模板策划项目汇报市场营销活动策划工作计划策划书营销管理节日策划推广策划策划方案商务策划工作汇报企业报告企业宣讲校园宣讲总结报告总结汇报个人总结工作总结工作报告模板教育教学教育培训教学课件主题教育班会育人教学计划班会课件教学研究模板家长会思想教育小学教学中学教学大学教学幼儿教学

关于游戏中的调度器

1.1调度游戏中的事件

一个调度其可以有效帮助以下游戏技术的实现,他们包括物理仿真,人物运动,碰撞检测,游戏中的人工智能,渲染。在所有这些技术中有一个关键问题就是时间。在不同的时间里,当数百个不同的物体和过程都需要更新时,这些仿真技术的很多种东西变得非常复杂。

调度器的重要能力在于它能够动态地增加和删除物体,这可以使新物体很平滑地加入到游戏里面去,和其他游戏里面的物体一起参加仿真,然后在不需要的时候从调度里面把它删除。

1.1.1调度器的组成

调度器的基本组件包括任务管理器,事件管理器和时钟。通过这些组件调度器就能生成基于时间或者基于帧的事件,然后调用相应的事件处理器。

任务管理器处理任务的注册和组织。每个任务都有一个包含了一个管理器可以调用的回调函数的接口。任务管理器维护了一个任务列表,其中包含了每一个任务的调度信息---例如开始时间,执行频率,持续时间,优先级和其他的属性。他也可能包含一个用户数据的指针或者性能统计信息。

事件管理器是调度器的核心部分。任务管理器里面的每一个任务都定义了一个或多个其需要处理的事件。一个事件指的是一个任务需要执行的时间。事件管理器的责任就是要产生必须的事件以执行相应的任务。

真实时间与虚拟时间:一个真实时间的调度在概念上是很简单的—时间管理器不停地进行循环,察看一个真实的时间时钟,每当目标到达的时候它就会触发一个事件。一个虚拟事件的调度器会把时间分成帧。任务在帧之间以批处理的方式进行,在虚拟时间里运行,然后在每帧渲染出来的时候与真实的时间进行同步。

时钟组件是用来跟踪真实时间,当前的仿真时间和帧数的。时间管理器负责事件的排序和产生。在某些情况下,多个任务可能会设置在同一个时间运行。有较高优先级的先执行。如果优先级相等或者系统没有优先级就轮流执行。我们经常需要动态地更改一个已经注册的任务属性,这可能会牵涉到更改他的优先级,周期,持续时间或者要求在它找到还没有结束的时候就将它删除。为了能更新任务的属性,我们必须使用一个外部的方法来找到他,可以使用一个唯一的注册ID来标志一个任务。

1.1.2一个简单的调度器

调度器的设计主要集中在两个组件上面-----调度器引擎本身和ITask插件接口。要使调度器运行起来,必须要有一个调用它的程序。在一个非图形里面的程序里面,这要求把它放在一个循环里面然后执行顺序里面然后执行就可以。While(running)scheduler.ExecuteFrame();有两种方法把调度器集成在一个消息驱动的图形界面上。第一种方法是修改消息循环来处理消息和调用调度器。这是一个最容易想到的方法,但是有个缺点,就是当窗口大小来来改变的时候调度器会停止工作。第二种方法是创建一个Windows时钟,利用时钟消息来调用调度器。由于时钟消息并不会被窗口的拖动打断,调度器就可以在后台就接续运行了。

仿真:调度器可以用来驱动仿真系统。为了实现动画和碰撞检测功能,大多数仿真引擎都将时间分成独立的小片。

我的理解:

调度器相当于一个总的控制器或者叫协调器,我称之为manager。游戏中的大部分事情可以看为一个任务,例如渲染,碰撞检测,都可以看做一个任务,任务的执行是靠事件来驱动的,而事件在这里3种,即:基于时间的事件,基于帧的事件,以及渲染事件。

基于时间的事件:该事件的发生依靠时间来判断,即当什么时间到了后,某个事件就会发生。

基于帧的事件:该事件的发生依靠帧来判断,即当游戏运行到指定帧后,某个事件就被触发。

渲染事件:该事件很特殊,它在每一帧里都会发生

您可能关注的文档

文档评论(0)

原创文库 + 关注
实名认证
文档贡献者

电子图像处理技能证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年04月20日上传了电子图像处理技能证

1亿VIP精品文档

相关文档