- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 为引擎添加游戏场景模块 内容提纲 9.1 游戏场景模块需求分析 9.2 游戏场景模块的设计 9.3 游戏场景模块的实现 1 场景操作函数 2 图层操作函数 3 地图文件解析函数 4 场景绘制函数 9.4 游戏场景模块应用实例 第9章 为引擎添加游戏场景模块 最终游戏场景是由多个图层叠加在一起构成的 这些图层可能是:背景图像、前景对象、不同性质的地图图层、NPC、玩家角色、子弹、爆炸动画、文字等; 这些图层组合在一起共同构成了完整的游戏元素; 每个图层都有各自独立的属性,能够被单独控制,在整个游戏中发挥着各自不同的作用 为了能够方便地操作这些性质不同的图层,我们需要一个可以统一管理这些图层的游戏场景模块 该类可以管理游戏中所有需要独立控制、单独描述属性的图层 无论是游戏角色还是游戏地图,都可以通过这个场景类统一操作,如绘制、定位、移动等 9.1 游戏场景模块需求分析 游戏场景模块要为游戏各图层提供一个共同的图层容器: 容器内各图层可作为统一整体来操作,如进行排序、插入、删除等操作; 每关游戏结束后,通过游戏场景模块可以很方便地清除各图层资源。 场景模块可以方便地对各图层进行相应的平移处理; 可以将容器内各图层统一绘制,外部类无须关心绘制细节,只须调用模块提供的绘制函数,就能方便地绘制全部游戏图层。 上一章构建的T_Map类只能描述一个地图图层; 地图文件中可能存在若干地图图层; 每个图层解析后都需要一个T_Map类对象来描述; 利用游戏场景模块统一管理各图层。 9.1 游戏场景模块需求分析 游戏场景模块命名为T_Scene类,它主要涉及4个方面的需求: 图层管理:采用vector容器来管理游戏中全部图层; 场景管理:统一管理整个场景的坐标位置、场景滚动处理、场景定位,并负责场景初始化; 地图文件解析:在解析地图文件的过程中,无论解析出多少个地图图层,只要将其统一添加到图层容器中,就可以方便地进行位移、删除、排序、绘制等操作 场景绘制: 保持各图层之间的正确顺序,有必要时对现有图层按其序号重新排序,然后再依次绘制; 绘制前,将场景类上一次的坐标与当前的坐标进行比较,判断其是否发生了滚动。如果是,则将每个图层的坐标进行同步位移处理,然后再绘制。 9.2 游戏场景模块的设计 定义管理图层用的GAMELAYER结构体类型,其中包含3个关键数据成员,分别记录图层序号、图层类型标识号以及指向实际图层对象的指针。 typedef struct { int z_order; // 图层序号(序号越小图层离观众越近) int type_id; // LAYER_TYPE常量值的图层类型标识号 T_Layer* layer; // 地图图层图像 }GAMELAYER; 利用GAMELAYER结构体定义vector类型的图层容器,并重新定义新名称。具体代码如下: // 游戏中的图层容器类型 typedef vectorGAMELAYER SCENE_LAYERS; T_ Scene类的定义 T_ Scene类在T_ Scene.h和T_ Scene.cpp文件中实现 具体定义代码请参见教程 9.3 游戏场景模块的实现 要实现的函数包括: T_ Scene类的构造函数和析构函数 T_ Scene类的功能函数: 场景操作函数 与场景操作相关的函数有4个,分别是: InitScene()函数 SetScenePos()函数 MoveScene()函数 ScrollScene()函数 图层操作函数: 与图层操作相关的函数有6个,分别是: Append() Insert() Remove() RemoveAll() SortLayers() getRandomFreeCell() SortByZorder()函数要与SortLayers()函数配合使用 9.3 游戏场景模块的实现 地图文件解析函数 地图文件解析涉及以下函数: GetTxtMapValue()函数 parseCsvData()函数 LoadTxtMap()函数 场景绘制函数 T_Scene类中只有唯一一个负责绘制场景的函数 Draw ()函数 具体实现代码请参见教程 9.4 游戏场景模块应用实例 本应用实例主要说明如何使用T_Scene类管理游戏图层。 代码将在上一章例8-1的基础上修改实现。 实例功能基本不变,只是将原来鼠标控制玩家角色代码去掉,本例的玩家角色只接受键盘控制。 NPC在地图上的漫游行为保持不变。 本例要将原来用数组保存地图数据的方式,改为用地图文件。 地图数据仍然相同,只是通过解析地图文件获取地图数据。 【例9-1】应用T_Scene类管理游戏图层、加载地图文件,实现角色在地图上的漫游。 具体实现代码请参见教
您可能关注的文档
- 液压技术与应用 作者 邱国庆 第6章.ppt
- 液压技术与应用 作者 邱国庆 绪论.ppt
- 液压与气动技术 第2版 工业和信息化高职高专“十二五”规划教材立项项目 作者 毛好喜 刘青云 第1章 液压传动和流体力学基础.ppt
- 液压与气动技术 第2版 工业和信息化高职高专“十二五”规划教材立项项目 作者 毛好喜 刘青云 第2章 液压动力元件.ppt
- 液压与气动技术 第2版 工业和信息化高职高专“十二五”规划教材立项项目 作者 毛好喜 刘青云 第3章 液压执行元件.ppt
- 液压与气动技术 第2版 工业和信息化高职高专“十二五”规划教材立项项目 作者 毛好喜 刘青云 第4章 液压控制元件与液压基本.ppt
- 液压与气动技术 第2版 工业和信息化高职高专“十二五”规划教材立项项目 作者 毛好喜 刘青云 第5章 液压辅助元件.ppt
- 液压与气动技术 第2版 工业和信息化高职高专“十二五”规划教材立项项目 作者 毛好喜 刘青云 第7章 气压传动技术.ppt
- 液压与气动技术 毛好喜 第2章.ppt
- 液压与气动技术 毛好喜 第5章液压基本回路.ppt
- 游戏程序设计教程——从游戏引擎构建到实际应用 作者 万立中 万立新 Chapter_10.ppt
- 游戏程序设计教程——从游戏引擎构建到实际应用 作者 万立中 万立新 Chapter_11.ppt
- 游戏程序设计教程——从游戏引擎构建到实际应用 作者 万立中 万立新 Chapter_12.ppt
- 智能楼宇技术 第2版 工业和信息化高职高专“十二五”规划教材立项项目 作者 王用伦 第2章 楼宇智能化的关键技术(第2版).ppt
- 智能楼宇技术 第2版 工业和信息化高职高专“十二五”规划教材立项项目 作者 王用伦 第3章 智能建筑设备自动化系统(第2版).ppt
- 智能楼宇技术 第2版 工业和信息化高职高专“十二五”规划教材立项项目 作者 王用伦 第4章 安全防范系统(第2版).ppt
- 智能楼宇技术 第2版 工业和信息化高职高专“十二五”规划教材立项项目 作者 王用伦 第9章 综合布线系统(第2版).ppt
- 智能楼宇技术 第2版 工业和信息化高职高专“十二五”规划教材立项项目 作者 王用伦 第10章 智能建筑系统集成及物业智能化管理(第2版).ppt
- 智能楼宇技术 作者 王用伦 第1章 智能建筑概述.ppt
- 智能楼宇技术 作者 王用伦 第2章 楼宇智能化的关键技术.ppt
最近下载
- 2025江西赣州南康赣商村镇银行招聘4人笔试备考试题及答案解析.docx VIP
- T_CMEAS 030-2024 儿童哮喘标准化门诊建设规范.pdf
- 小学一年级体育教案全册表格式(精品).doc VIP
- 2025年湖南有色金属控股集团有限公司校园招聘模拟试题附带答案详解参考答案.docx VIP
- 摩登家庭台词剧本第一季第一集中英双语左右对照.pdf VIP
- 前厅服务与管理前厅销售课件.pptx VIP
- 货架验收标准.docx VIP
- 2025年湖南有色金属控股集团有限公司校园招聘模拟试题附带答案详解必考题.docx VIP
- 新22N1 供暖工程图集 .docx VIP
- 2025年湖南有色金属控股集团有限公司校园招聘模拟试题附带答案详解附答案.docx VIP
文档评论(0)