基于opengl的飞行射击游戏开发与设计.doc
约50页DOC格式手机打开展开
基于opengl的飞行射击游戏开发与设计,摘 要国内的三维游戏开发技术正处于赶超国外的关键时期,以大型的游戏作为主流。但是,小游戏的制作,还是不断在扩展。大部分的电脑用户,都是闲暇时进行游戏,所以一个有乐趣的小游戏已经足够满足他们的需求。本游戏的开发目的,就是为了满足这部分的用户。大型游戏一个很重要吸引用户的地方,是能给用户拥有自己创造的人物模型,趋于这个目的...
内容介绍
此文档由会员 losece 发布摘 要
国内的三维游戏开发技术正处于赶超国外的关键时期,以大型的游戏作为主流。但是,小游戏的制作,还是不断在扩展。大部分的电脑用户,都是闲暇时进行游戏,所以一个有乐趣的小游戏已经足够满足他们的需求。
本游戏的开发目的,就是为了满足这部分的用户。
大型游戏一个很重要吸引用户的地方,是能给用户拥有自己创造的人物模型,趋于这个目的,本游戏提供了一个能给用户制作人物模型的编辑器,大大吸引了用户。
游戏和模型编辑器的模型运用的是自定义的数据结构,所以游戏能绘制编辑器编辑出来的模型。
本游戏是基于OpenGL库的运用,结合面向对象方法开发的。
OpenGL定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。OpenGL仍然是唯一能够取代微软对3D图形技术的完全控制的API。
通过利用OpenGL的三维图形软件包,深入了解运用Visual C++制作一个拥有可供用户自行定义游戏关卡的3D飞行射击游戏。体现人机交互。充分运用项目开发、面向对象、算法等。
关键词:OpenGL 游戏 设计 VisualC++ 飞行射击
摘 要 I
ABSTRACT II
1 引言 1
1.1系统开发背景 1
1.2项目目的及意义 1
1.3项目技术要求 2
1.4开发工具及相关技术简介 2
1.4.1 C++语言 2
1.4.2 OpenGL 3
1.4.3 STL 3
1.4.4 VC++ 5
2 可行性研究 7
2.1技术可行性 7
2.2经济可行性 7
2.3操作可行性 7
2.4法律可行性 7
3 需求分析 8
3.1需求分析的重要性 8
3.1.1目标游戏要求 8
3.1.2系统运行环境 8
3.1.3系统开发工具 8
3.1.4系统的性能要求 8
3.1.5系统的功能要求 8
3.1.6系统总体功能需求框架 9
3.2系统主要程序流程图与数据流图 10
3.2.1飞行射击游戏程序流程图与数据流图 10
3.2.1.1开始游戏程序流程图与数据流图 10
3.2.1.2模型选择流程与数据流图 11
3.2.1.3进行游戏流程与数据流图 13
3.2.1.4飞行射击游戏总业务流程与数据流图 15
3.2.2模型编辑器譆@绦蛄鞒掏加胧萘魍?16
4 总体设计 18
4.1概述 18
4.2游戏目标 19
4.3游戏结构设计 19
4.4游戏功能划分 19
4.4.1游戏子功能划分 19
4.5游戏功能描述 20
4.5.1开始菜单功能描述 20
4.5.2模型选择功能描述 20
4.5.3进行游戏功能描述 20
4.5.3用户菜单功能描述 21
4.6模型编辑器功能划分 21
4.7模型编辑器描述 21
5 详细设计与系统实现 22
5.1概述 22
5.2游戏的实施 23
5.2.1主窗口创建(NewShow.cpp) 26
5.2.2 OpenGL窗口创建(OpenGL.h、OpenGL.cpp) 26
5.2.3游戏控制器(Contral.h、Contral.cpp) 26
5.2.4机体对象基本类(ObjData.h、ObjData.cpp) 26
5.2.5敌机对象类(ObjBaseData.h、ObjBaseData.cpp) 26
5.2.6敌机对象控制器(AiObj.h、AiObj.cpp) 26
5.2.7战机对象控制器(SelfObj.h、SelfObj.cpp) 27
5.2.8子弹对象类(BulletObj.h、BulletObj.cpp) 27
5.2.9子弹对象控制器(BulletMenager.h、BulletMenager.cpp) 27
5.2.10文件读取控制器(FioMenager.h、FioMenager.cpp) 27
5.2.11文字显示类(CGLFont.h、CGLFont.cpp) 27
5.2.12火花对象类(Grain.h、Grain.cpp) 27
5.2.13火花对象控制器(GrainMenager.h、GrainMenager.cpp) 28
5.2.14碰撞检测(Hitexamina.h、Hitexamina.cpp) 28
5.2.15模型控制器(modeMenager.h、modeMenager.cpp) 28
5.2.16游戏类图 29
5.3模型编辑器的实施 30
5.3.1MFC窗口(CMakeFlyModeDlg.h、CMakeFlyModeDlg.cpp) 30
5.3.2OpenGL窗口创建(OpenGL.h、OpenGL.cpp) 30
5.3.3子模型管理(BaseGraphics.h、BaseGraphics.cpp) 30
5.3.4子模型类(GraphicsObj.h、GraphicsObj.cpp) 31
5.3.5文件存取控制器(FioMenager.h、FioMenager.cpp) 31
5.3.5模型编辑器类图 31
5.4自定义数据结构 31
6 测试与维护 33
6.1测试的任务及目标 33
6.1.1测试的任务 33
6.1.2测试的目标 34
6.2测试方案 34
6.2.1模块测试: 34
6.2.3验收测试 35
6.2.4平行运行 35
6.3系统维护 35
7 特点与技巧 36
7.1游戏特点 36
7.2 代码技巧 36
参考文献 37
附 录 38
谢 辞 45
引言
1.1系统开发背景
软件系统名称:飞行射击游戏
本项目是根据毕业设计的要求,经过本人实践及深思熟虑后提出,结合所学知识所作出的最终决定。
OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。Open GL仍然是唯一能够取代微软对3D图形技术的完全控制的API。
参考文献
[1]谭浩强:《C++程序设计》[M].第1版. 清华大学出版社,2004.6
[2]朱少民:《软件测试方法和技术》[M].第1版. 清华大学出版社,2005.7
[3]施瑞奈尔:《Open GL编程指南》[M].第7版. 机械工业出版社,2010.3
[4]安吉尔:《OpenGL编程基础》[M].第3版. 清华大学出版社,2008.7
[5]安杰尔:《OpenGL程序设计指南》[M].第2版. 清华大学出版社,2005.5
[6]李普曼:《C++ Primer中文版》[M].第4版. 人民邮电出版社,2008.7
[7]侯俊杰:《深入浅出MFC》[M].第1版. 华中科技大学出版社,2001.1
[8]董建明:《人机交互:以用户为中心的设计和评估》.第1版. 清华大学出版社,2003.9
[9]张海藩:《软件工程导论》[M].第4版.北京:清华大学出版社,2005.7