飞机⼤战游戏的设计与开发毕业论⽂飞机⼤战游戏的设计与开发毕业论
⽂
⽬录
第1章绪论 (1)
1.1 系统研究的背景及意义 (1)
1.2 国内外的发展现状 (1)
1.4 本⽂的组织结构 (2)
1.5 本章⼩结 (2)
第2章游戏的相关知识和系统开发平台的阐述 (3)
2.1游戏基本流程概述 (3)
2.2游戏系统元素阐述 (4)
2.3开发环境和相关技术的概述 (5)
2.3.1 开发环境 (5)
2.3.2 相关技术 (5)
2.4本章⼩结 (10)
第3章游戏分析 (11)
3.1 ⽤户功能需求分析 (11)
3.2 系统性能要求 (12)
3.3可⾏性分析 (12)
3.4本章⼩结 (13)
第4章游戏设计 (14)
4.1游戏整体设计 (14)
4.1.1 整体结构 (14)
4.1.2 游戏对战规则 (14)
4.2游戏界⾯设计 (15)
4.2.1游戏起始界⾯设计 (15)
4.2.2游戏运⾏界⾯设计 (17)
4.2.3游戏结束界⾯设计 (17)
4.3游戏功能设计 (18)
4.3.1双缓冲绘图 (19)
4.3.2功能实现 (19)
4.4本章⼩结 (26)
第5章系统测试 (27)
5.1软件测试基础理论 (27)
5.1.1 软件测试定义 (27)
5.1.2 软件测试基本概念 (27)
5.2软件测试⽬的 (27)
5.3软件测试⽅法分类 (28)
5.3.1 静态测试与动态测试 (28)
5.3.2 ⿊盒⽩盒与⽩盒测试 (28)
5.3.3 单元测试、集成测试、系统测试、验证测试和确认测试 (29)
5.4论坛测试 (29)
5.4.1 测试⽤例设计要求 (29)
5.5测试⽤例 (30)
5.6测试结果 (30)
5.6本章⼩结 (31)
第6章⼯作总结 (32)
致谢 (33)
参考⽂献 (34)
附录1 (35)
第1章绪论
第1章绪论
1.1 系统研究的背景及意义
当今社会是⼀个信息社会,⼀个知识经济的年代。⾃从世界上第⼀台计算机ENIAC于1946年问世到现在,计算机业飞速发展。随着以全球信息⽹络普及和全球信息共享为标志的“全球信息⽹络⾰命”的蓬勃兴起,世界已然进⼊在计算机信息管理领域的激烈竞争的时代,计算机,⾃然⽽然的变成了⼈们⽣活中
必不可少的⼀部分。
过去,⼈们只要是借助电影,电视,⾳乐等⽅式来娱乐。⽽今天,以游戏为代表的电⼦娱乐正成为主流娱乐⽅式。因为CPU 以及显卡等设备的⾼速发展,为⼈们开发出更加炫⽬多彩的游戏提供了可能。时代的发展,社会的进步,科学技术正以⽇新⽉异的速度飞速的向前发展。计算机技术的发展更是迅速⽽且⼴泛。可以说,计算机已经涉及到现代绝⼤部分⾏业。⽬前纷繁复杂的游戏软件⽐⽐皆是,⽆论在线的⽹路游戏还是桌⾯游戏,⼆维的还是三维⽴体空间的,多由单机版游戏孕育⽽来。学习简单的单机版游戏的制作,有利于初学者了解到游戏制作的理念。⽬前不论是在国内还是世界范围内,游戏产业都如⾬后的春笋,蓬勃发展,越来越多更具娱乐性的游戏产品被开发出来,这其中在众多的游戏开发⼯具中,Microsoft的Visual Studio系列被认为是当今世界最强⼤的游戏开发软件之⼀。其代表作:魔兽争霸系列、星际争霸系列、帝国时代系列等等等等,⼏乎所有的⼤作都有VS的功劳。因此掌握了VS的应⽤,不但是掌握了⼀种优秀的开发⼯具,对于今后参加⼤型团队的游戏项⽬开发也具有⼀定的帮助。本设计通过开发⼀个单机版的射击类游戏,有⼀定的娱乐性很值得⼀试。通过制作这样⼀个软件,可以加深对游戏设计思想的了解,也可以进⼀步熟悉编程⼯具的应⽤,更可以给我们的⽣活带来更多的趣味。通过该设计,我将更好的了解windows消息机制,更深的体会到利⽤Visual Studio/MFC开发windows程序的优越性。
1.2 国内外的发展现状
96,97年的国产游戏产品是单机版的游戏,在当时的市场上虽然品质和档次不如外来产品,但也占有⼀定的市场,例如《仙剑奇侠传》、《三国志》等系列带有鲜明中国特⾊与⽓息的游戏在市场上掀起了⼀波⾼潮。1998年联众与中国游
戏中⼼等⽼牌的游戏平台的推出标志着电脑游戏在中国的开荒与⽣根。但是到了1999年在没有形成主流产品的情况下,政策不明朗,包括开发资⾦出现问题等原因国产游戏开始⾛下坡路。⼀直到了2000年,⽹络游戏问世并且很快流⾏起来我国的游戏⾏业才⼜渐渐的复苏,但是由于投⼊差距太⼤,起步晚等原因与外国游戏相对⽽⾔并没有竞争⼒。
时⾄今⽇,⽹络游戏⾛⼊盛世,成为了⼀部分⼈休闲娱乐的主要⾏为。国内⽹易、腾讯、九城、完美等公司百花齐放,国产⽹游渐渐⾛⼊国际市场,⽽且基于⽹络的发展真正实现了⽹络全球化,⽹络游戏也是遍布全球,全球同玩⼀款游戏的现象⽐⽐皆是。⼤量海外游戏⾛⼊中国市场,电脑游戏百花纷呈,随着经济的进步,计算机科技的发展,这⼀现象将愈演愈烈。
1.4 本⽂的组织结构
第1章绪论本章主要介绍了课题的研究背景,课题研究的⽬的与意义,以及该项⽬所在领域国内外发展状况等,最后指出了本⽂⼯作内容及论⽂的组织结构。
第2章游戏相关知识和系统开发平台的阐述本章主要介绍了整个游戏中的流程表述和开发所⽤语⾔以及开发平台的介绍与说明。
第3章游戏分析本章主要分析了游戏的可⾏性,游戏对系统性能的要求以及⽤户对功能的需求。
第4章游戏设计本章是本⽂⽐较重要的章节,总体描述了游戏规则以及游戏开发中各项功能的实现⽅法,游戏界⾯的设计,最后对整个项⽬的包结构和项⽬资源路径做了简单的剖析和介绍。
第5章系统测试详细介绍了测试的概念,并对本项⽬进⾏测试。
第6章总结。
1.5 本章⼩结
详细介绍了电脑游戏开发的国内外现状,以及本论⽂主要研究的⽅向和论⽂的整体结构,从本章中能够清楚的了解本论⽂的整体架构,对以后的各细节描述都有清晰的认识。
第2章游戏的相关知识和系统开发平台的阐述
第2章游戏的相关知识和系统开发平台的阐述
2.1游戏基本流程概述
⼀个游戏基本上是⼀个连续的循环,它完成⼀系列的逻辑操作,并在屏幕上绘制图像,具体流程如下:
(1)初始化:在这⼀步中,游戏程序执⾏标准初始化操作,如内存分配、资源采集、从磁盘载⼊数据等等,这和其他Windows 应⽤程序⼀样。
(2)进⼊游戏循环:在这⼀步中,游戏代码将进⼊游戏主循环,此时各种游戏动作和情节开始运⾏,直到当接受到⽤户退出游戏的命令。
(3)获取玩家的输⼊信息: 在这⼀步中,游戏玩家的输⼊信息被处理或缓存,以备下⼀步⼈⼯智能和游戏逻辑使⽤。
(4)执⾏⼈⼯智能和游戏逻辑:这部分包括了游戏代码的主体,诸如执⾏⼈⼯智能、物理系统和常规的游戏逻辑,其结果⽤于渲染下⼀帧图像。
(5)渲染下⼀帧图像: 游戏的输⼊和第四步中游戏⼈⼯智能和游戏逻辑执⾏的结果,被⽤来产⽣游戏的下⼀帧。这个图像通常放在不可见的缓存区内,因此玩家不会看到它逐渐被渲染的过程随后该图像被迅速拷贝到显⽰存储器中并显⽰出来。
(6)同步显⽰:通常由于游戏复杂程序不同,游戏在计算机上运⾏的速度会不⼀。使⽤定时器和等待函数确保游戏和最⼤帧同步,通常认为30FPS(帧/秒)是可以接受的最低速率,⽽⼤多数动作玩家将他们的图形调整到不⼤于60FPS。(7)循环:返回到游戏的⼊⼝并重新执⾏上述全部步骤。
(8)关闭:这⼀步游戏结束,表⽰将退出主程序或游戏循环,并回到操作系统。然⽽,在⽤户进⾏结束之前,⽤户必须释放所有的资源并清理系统。
学习编程的单机游戏游戏基本流程简图如下:
图2-1 游戏基本流程图
2.2游戏系统元素阐述
游戏元素是指各类游戏的基本构成要素,该项⽬主要是侧重射击类游戏,那么其中主要包括4中元素:
(1)游戏界⾯:⼈物造型、战⽃场地、动画效果等,当玩家在进⾏游戏时,界⾯的效果,风格将会在第⼀时间告诉给玩家,这是游戏的⼤致轮廓,其中主要包括以下2点:图形技术:2D和3D图形技术;游戏视⾓:第⼀⼈称视⾓,第三⼈称视⾓,俯视⾓。
(2)游戏创意:游戏的创作意义,新奇,惊⼈,震撼,实效,有较突出的独⽴性。
(3)可玩性:有较强的可玩性,情绪风格精神这三个⽅⾯特征。可玩性是玩家和乐趣之间的沟通桥梁,,不仅体现在单机玩家和电脑对抗中,也体现在
多⼈多⾓⾊的竞争中,良好的可玩性是游戏是否能够占领市场的作⽤之⼀。(4)游戏声⾳:游戏声⾳常常⽤于渲染⽓氛,烘托游戏的乐趣,使得游戏不显得匮乏⽆⼒。⽤于给予听觉上的反馈,例如⾳效,背景⾳乐,对话等,⾼品质的⾳乐可以达到争强游戏的表现⼒的效果。
2.3开发环境和相关技术的概述
2.3.1 开发环境
操作系统:XP,Win7
程序语⾔:C++
开发包:MFC
IDE:Visual Studio 2010
2.3.2 相关技术
2.3.2.1 C++ 语⾔特点
C++是在C语⾔的基础上开发的⼀种通⽤编程语⾔.应⽤⼴泛。C++⽀持多种编程范式--⾯向对象编程、泛型编程和过程化编程。最新正式标准C++14于2014年8⽉18⽇公布。其编程领域众⼴.常⽤于系统开发.引擎开发等应⽤领域.是⾄今为⽌最受⼴⼤受⽤的最强⼤编程语⾔之⼀.⽀持类:类、封装、重载等!
计算机诞⽣初期.⼈们要使⽤计算机必须⽤机器语⾔或汇编语⾔编写程序。世界上第⼀种计算机⾼级语⾔是诞⽣于1954年的
FORTRAN语⾔。之后出现了多种计算机⾼级语⾔.其中使⽤最⼴泛、影响最⼤的当推BASIC语⾔和C语⾔。BASIC语⾔是1964年由Dartmouth 学院John G. Kemeny 与Thomas E. Kurtz 两位教授在FORTRAN语⾔的基础上简化⽽成的. 适⽤于初学者设计的⼩型⾼级语⾔;C语⾔是1972年由美国贝尔实验室的D.M.Ritchie所开发.采⽤结构化编程⽅法.遵从⾃顶向下的原则。[2]在操作系统和系统使⽤程序以及需要对硬件进⾏操作的场合.⽤C语⾔明显优于其它⾼级语⾔.但在编写⼤型程序时.C语⾔仍⾯临着挑战。
1983年.贝尔实验室的Bjarne Stroustrup在C语⾔基础上推出了C++[1] 。C++进⼀步扩充和完善了C语⾔.是⼀种⾯向对象的程序设计语⾔。
C++这个名字是Rick Mascitti于1983年中所建议的.并于1983年12⽉⾸次
使⽤。更早以前.尚在研究阶段的发展中语⾔曾被称为“new C”.之后是“C with Class”[3] 。在计算机科学中.C++仍被称为C语⾔的上层结构。它最后得名于C 语⾔中的“++”操作符(其对变量的值进⾏递增)。⽽且在共同的命名约定中.使⽤“+”以表⽰增强的程序。Stroustrup说:“这个名字象征着源⾃于C语⾔变化的⾃然演进”。
注:C+是⼀个和C/C++⽆关的早期编程语⾔。
Rick Mascitti在1992年被⾮正式地问起名字的由来.他表⽰这是在半开玩笑中说出的。他从没想过C++会成为这门语⾔的正式名字。有⼀个关于C++名字的笑话.当你使⽤后缀++时.赋值发⽣在加运算之后(因此.它应该是++C.⽽不是C++.这个笑话是说时下某些程序员还在以使⽤C的⽅式使⽤C++.这通常被⼀些权威著作认为是不正确的)。
在“C with Class”阶段.研制者在C语⾔的基础上加进去的特征主要有:类及派⽣类、共有和私有成员的区分、类的构造函数和析构函数、友元、内联函数、赋值运算符的重载等。
1985年公布的C++语⾔1.0版的内容中⼜添加了⼀些重要特征:虚函数的概念、函数和运算符的重载、引⽤、常量(constant)等。
1989年推出的2.0版形成了更加完善的⽀持⾯向对象程序设计的C++语⾔.新增加的内容包括:类的保护成员、多重继承、对象的初始化与赋值的递归机制、抽象类、静态成员函数、const成员函数等。
1993年的C++语⾔3.0版本是C++语⾔的进⼀步完善.其中最重要的新特征是模板(template).此外解决了多重继承产⽣的⼆义性问题和相应的构造函数与析构函数的处理等。
1998年C++标准(ISO/IEC14882 Standard for the C++ Programming Language)得到了国际标准化组织(ISO)和美国标准化协会(ANSI)的批准.标准C++语⾔及其标准库更体现了C++语⾔设计的初衷。名字空间的概念、标准模板库(STL)中增加的标准容器类、通⽤算法类和字符串类型等使得C++语⾔更为实⽤。此后C++是具有国际标准的编程语⾔.该标准通常简称ANSI C++或ISO C++ 98标准.以后每5年视实际需要更新⼀次标准。
后来⼜在2003年通过了C++标准第⼆版(ISO/IEC 14882:2003):这个新版本是⼀次技术性修订.对第⼀版进⾏了整理——修订错误、减少多义性等.但没有改变语⾔特性。这个版本常被称为C++03。[2]
此后.新的标准草案叫做C++ 0x。对于C++ 0x标准草案的最终国际投票已于2011年8⽉10⽇结束.并且所有国家都投出了赞成票.C++0x已经毫⽆疑义地成
为正式国际标准。先前被临时命名为C++0x的新标准正式定名为ISO/IEC 14882:2011.简称ISO C++ 11标准。C++ 11标准将取代现⾏的C++标准C++98和C++03。国际标准化组织于2011年9⽉1⽇出版发布《ISO/IEC 14882:2011》.名称是:Information technology -- Programming languages -- C++ Edition: 3。
虽然.C++到⽬前为⽌.已经出现了很多年.但由于它的稳定性和强⼤的功能等.在系统开发.引擎开发等应⽤领域.是⾄今为⽌最受⼴⼤受⽤的最强⼤编程语⾔之⼀。
2.3.2.2 MFC介绍
MFCMicrosoft Foundation Classes,是⼀个微软公司提供的类库(class libraries),以C++类的形式封装了Windows的API,并且包含⼀个应⽤程序框架,以减少应⽤程序开发⼈员的⼯作量。其中包含的类包含⼤量Windows句柄封装类和很多Windows 的内建控件和组件的封装类。MFC是WinAPI与C++的结合。API,即微软提供的Windows下应⽤程序的编程语⾔接⼝,是⼀种软件编程的规范,但不是⼀种程序开发语⾔本⾝,可以允许⽤户使⽤各种各样的第三⽅如我是⼀⽅,微软是⼀⽅,Borland 就是第三⽅的编程语⾔来进⾏对Windows下应⽤程序的开发,使这些被开发出来的应⽤程序能在Windows下运⾏,⽐如VB、VC++、JA V A、Delhpi。编程语⾔函数本质上全部源于API,因此⽤它们开发出来的应⽤程序都能⼯作在Windows的消息机制和绘图⾥,遵守Windows作为⼀个操作系统的内部实现,这其实也是⼀种必要。微软如果不提供API,这个世上对Windows 编程的⼯作就不会存在,微软的产品就会迅速从时尚变成垃圾。上⾯说到MFC 是微软对API函数的专⽤C++封装,这种结合⼀⽅⾯让⽤户使⽤微软的专业C++ SDK来进⾏Windows下应⽤程序的开发变得容易,因为MFC是对API的封装,微软做了⼤量的⼯作,隐藏了好多程序开发⼈员在Windows下⽤C++ & MFC编制软件时的⼤量内节,如应⽤程序实现消息的处理、设备环境绘图,这种结合是以⽅便为⽬的的,必定要付出⼀定代价这是微软的⼀向作风,因此
就造成了MFC 对类封装中的⼀定程度的的冗余和迂回,但这是可以接受的。MFC是微软封装了的API。什么意思呢?Windows作为⼀个提供功能强⼤的应⽤程序接⼝编程的操作系统,的确⽅便了许多程序员,传统的win32开发(直接使⽤Windows的接⼝函数API)对于程序员来说⾮常的困
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论