游戏编程导论 Chapter-03_第1页
游戏编程导论 Chapter-03_第2页
游戏编程导论 Chapter-03_第3页
游戏编程导论 Chapter-03_第4页
游戏编程导论 Chapter-03_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 构建游戏引擎框架内容提纲 3.1游戏引擎框架的构建3.1.1 引擎框架的设计3.1.2 T_Config头文件的定义3.1.3 屏幕分辨率的改变及恢复3.1.4 引擎类的定义和实现3.2引擎类应用实例3.2.1 编写引擎框架测试代码3.2.2 为框架测试代码增加绘图处理任务第3章 构建游戏引擎框架本章以构建游戏引擎框架为起点,以游戏窗口处理为主要实现内容。后续的章节将以本章的代码框架和窗口处理为基础,逐步完成一个初步的游戏引擎的实现,并在实际游戏中运用该游戏引擎。3.1 游戏引擎框架的构建在游戏开发时,对于某一类游戏共享的、相对固定的代码,往往会进行抽象化,以代码重用为目的,以类的形式

2、进行封装,这样封装起来的代码,也就是所谓的游戏引擎。游戏引擎预先调用某些功能相对固定,但实现细节由具体游戏才能确定的模块,这些模块可以以纯虚函数的方式封装在抽象类中。函数名称是确定的,且被游戏引擎自动调用,但函数的具体实现则由该抽象类的派生类进行实现。使用引擎时,先实现一个该抽象类的派生类,然后完成这些纯虚函数的具体实现。这样一来,这些纯虚函数实际上充当了接口函数的功能。本章将首先涉及游戏引擎框架的构建和游戏窗口的处理。 3.1 游戏引擎框架的构建3.1.1 引擎框架的设计TinyEngine的架构:3.1 游戏引擎框架的构建引擎由11个类和一个共享的头文件构成。全部的引擎文件都是以“T_”开

3、头。1. T_Config头文件2. T_Display显示类3. T_Engine引擎类其中定义了GameInit()、GameLogic()、GameEnd()、GamePaint()、GameKeyAction()、GameMouseAction()这6个纯虚函数,本类是专门用于派生的抽象类4. T_Graph图形类5. T_Menu菜单类6. T_Layer图层类7. T_Sprite精灵类8. T_AI智能类9. T_Util工具类10. T_Map地图类11. T_Scene场景类12. T_Audio声音类3.1 游戏引擎框架的构建3.1.2 T_Config头文件的定义T_Co

4、nfig头文件是整个游戏引擎共用的头文件,它首先会被T_Engine类引用。这个文件只有.h的头文件,没有对应的.cpp源文件。文件中主要是一些数据结构定义、常量定义,以及所需系统头文件的引用等。除了已经给出的定义外,您还可以根据开发的需要自己增加所需要的数据结构定义、数据类型定义、常量定义等。T_Config.h文件完整定义请参见教程3.1 游戏引擎框架的构建3.1.3 屏幕分辨率的改变及恢复处理游戏的分辨率是游戏引擎必备的功能1.修改分辨率的API函数ChangeDisplaySettings()函数,其原型定义如下: LONG ChangeDisplaySettings (LPDEVMODE lpDevMode, DWORD dwflags);2.将分辨率处理功能封装成类1) T_Display类的定义:请参见教程2) T_Display类的实现:请参见教程3.1 游戏引擎框架的构建3.1.4 引擎类的定义和实现T_Engine引擎类的定义和接口函数声明在T_Engine.h头文件中完成;类成员函数的定义及类的静态数据成员的初始化则在T_Engine.cpp源文件中实现。T_Engine类的定义:请参见教程T_Engine类的实现:请参见教程3.2 引擎类应用实例3.2.1 编写引擎框架测试代码具体实现请参见教程和代码工程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论