网学网为广大网友收集整理了,基于OpenGL的飞行射击游戏开发与设计,希望对大家有所帮助!
论文字数:18908,页数:54
摘 要
国内的三维游戏开发技术正处于赶超国外的关键时期,以大型的游戏作为主流。但是,小游戏的制作,还是不断在扩展。大部分的电脑用户,都是闲暇时进行游戏,所以一个有乐趣的小游戏已经足够满足他们的需求。
本游戏的开发目的,就是为了满足这部分的用户。
大型游戏一个很重要吸引用户的地方,是能给用户拥有自己创造的人物模型,趋于这个目的,本游戏提供了一个能给用户制作人物模型的编辑器,大大吸引了用户。
游戏和模型编辑器的模型运用的是自定义的数据结构,所以游戏能绘制编辑器编辑出来的模型。
本游戏是基于OpenGL库的运用,结合面向对象方法开发的。
OpenGL定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。OpenGL仍然是唯一能够取代微软对3D图形技术的完全控制的API。
通过利用OpenGL的三维图形软件包,深入了解运用Visual C++制作一个拥有可供用户自行定义游戏关卡的3D飞行射击游戏。体现人机交互。充分运用项目开发、面向对象、算法等。
关键词:OpenGL 游戏 设计 VisualC++ 飞行射击
OPENGL BASED ON THE ARCADE-STYLE GAME DEVELOPMENT AND DESIGNS
ABSTRACT
In three-dimensional space development of technology was crucial in emulation of foreign, in large game as the mainstream. But little game, or in developing steadily. the majority of computer users, it is time to games, so a fun little game enough to meet their requirements.
This game development purpose is to satisfy the part of the user.
Large game a very important to attract users, is to give users have created a model, to this end, this game a model for making characters on the user''s editor, has greatly attracted to the user.
Game and the model editor model using a custom data structure of the game, so you can draw the editor to edit out of the model.
This game is based on OpenGL the storehouse the utilization, the object orientation of development.
OpenGL defines a programming language, and stepped across the programmatic interface to specifications. It is a three-dimensional image(2d also). Opengl is a professional graphics applications, is a powerful call to the ground floor, a library. opengl english name is "open graphics library," suggests, is "open interface graphics program”. Opengl only with 3d graphics able to replace the microsoft technology complete control of the API.
OpenGL by using 3-d graphics package, the probe to use visual c making a definition for users on the stage of the 3d arcade-style game. That interaction full use of the man-machine development, designing object-oriented and algorithms.
Key words:OpenGL game design VisualC++ firepowerex
目 录
摘 要 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