飞机大战游戏的设计与开发毕业论
文
目录
第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)
I
4.3.1双缓冲绘图 (19)
4.3.2功能实现 (19)
4.4本章小结 (26)
第5章系统测试 (27)
5.1软件测试基础理论 (27)
II
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)
I
第1章绪论
第1章绪论
1.1 系统研究的背景及意义
当今社会是一个信息社会,一个知识经济的年代。自从世界上第一台计算机ENIAC于1946年问世到现在,计算机业飞速发展。随着以全球信息网络普及和全球信息共享为标志的“全球信息网络革命”的蓬勃兴起,世界已然进入在计算机信息管理领域的激烈竞争的时代,计算机,自然而然的变成了人们生活中必不可少的一部分。
过去,人们只要是借助电影,电视,音乐等方式来娱乐。而今天,以游戏为代表的电子娱乐正成为主流娱乐方式。因为CPU以及显卡等设备的高速发展,为人们开发出更加炫目多彩的游戏提供了可能。时代的发展,社会的进步,科学技术正以日新月异的速度飞速的向前发展。计算机技术的发展更是迅速而且广泛。可以说,计算机已经涉及到现代绝大部分行业。目前纷繁复杂的游戏软件比比皆是,无论在线的网路游戏还是桌面游戏,二维的还是三维立体空间的,多由单机版游戏孕育而来。学习简单的单机版游戏的制作,有利于初学者了解到游戏制作的理念。目前不论是在国内还是世界范围内,游戏产业都如雨后的春笋,蓬勃发展,越来越多更具娱乐性的游戏产品被开发出来,这其中在众多的游戏开发工具中,Microsoft的Visual Studio系列被认为是当今世界最强大的游戏开发软件之一。其代表作:魔兽争霸系列、星际争霸系列、帝国时代系列等等等等,几乎所有的大作都有VS的功劳。因此掌握了VS的应用,不但是掌握了一种优秀的开发工具,对于今后参加大型团队的游戏项目开发也具有一定的帮助。本设计通过开发一个单机版的射击类游戏,有一定的娱乐性很值得一试。通过制作这样一个软件,可以加深对游戏设计思想的了解,也可以进一步熟悉编程工具的应用,更可以给我们的生活带来更多的趣味。通过该设计,我将更好的了解windows消息机制,更深的体会到利用Visual Studio/MFC开发windows程序的优越性。
1.2 国内外的发展现状
96,97年的国产游戏产品是单机版的游戏,在当时的市场上虽然品质和档次不如外来产品,但也占有一定的市场,例如《仙剑奇侠传》、《三国志》等系列带有鲜明中国特色与气息的游戏在市场上掀起了一波高潮。1998年联众与中国游
1
戏中心等老牌的游戏平台的推出标志着电脑游戏在中国的开荒与生根。但是到了1999年在没有形成主流产品的情况下,政策不明朗,包括开发资金出现问题等原因国产游戏开始走下坡路。一直到了2000年,网络游戏问世并且很快流行起来我国的游戏行业才又渐渐的复苏,但是由于投入差距太大,起步晚等原因与外国游戏相对而言并没有竞争力。
时至今日,网络游戏走入盛世,成为了一部分人休闲娱乐的主要行为。国内网易、腾讯、九城、完美等公司百花齐放,国产网游渐渐走入国际市场,而且基于网络的发展真正实现了网络全球化,网络游戏也是遍布全球,全球同玩一款游戏的现象比比皆是。大量海外游戏走入中国市场,电脑游戏百花纷呈,随着经济的进步,计算机科技的发展,这一现象将愈演愈烈。
1.4 本文的组织结构
第1章绪论本章主要介绍了课题的研究背景,课题研究的目的与意义,以及该项目所在领域国内外发展状况等,最后指出了本文工作内容及论文的组织结构。
第2章游戏相关知识和系统开发平台的阐述本章主要介绍了整个游戏中的流程表述和开发所用语言以及开发平台的介绍与说明。
第3章游戏分析本章主要分析了游戏的可行性,游戏对系统性能的要求以及用户对功能的需求。
第4章游戏设计本章是本文比较重要的章节,总体描述了游戏规则以及游戏开发中各项功能的实现方法,游戏界面的设计,最后对整个项目的包结构和项目资源路径做了简单的剖析和介绍。
第5章系统测试详细介绍了测试的概念,并对本项目进行测试。
第6章总结。
1.5 本章小结
详细介绍了电脑游戏开发的国内外现状,以及本论文主要研究的方向和论文的整体结构,从本章中能够清楚的了解本论文的整体架构,对以后的各细节描述都有清晰的认识。
2
第2章游戏的相关知识和系统开发平台的阐述
第2章游戏的相关知识和系统开发平台的阐述
2.1游戏基本流程概述
一个游戏基本上是一个连续的循环,它完成一系列的逻辑操作,并在屏幕上绘制图像,具体流程如下:
(1)初始化:在这一步中,游戏程序执行标准初始化操作,如内存分配、资源采集、从磁盘载入数据等等,这和其他Windows应用程序一样。
(2)进入游戏循环:在这一步中,游戏代码将进入游戏主循环,此时各种游戏动作和情节开始运行,直到当接受到用户退出游戏的命令。
(3)获取玩家的输入信息: 在这一步中,游戏玩家的输入信息被处理或缓存,以备下一步人工智能和游戏逻辑使用。
(4)执行人工智能和游戏逻辑:这部分包括了游戏代码的主体,诸如执行人工智能、物理系统和常规的游戏逻辑,其结果用于渲染下一帧图像。
(5)渲染下一帧图像: 游戏的输入和第四步中游戏人工智能和游戏逻辑执行的结果,被用来产生游戏的下一帧。这个图像通常放在不可见的缓存区内,因此玩家不会看到它逐渐被渲染的过程随后该图像被迅速拷贝到显示存储器中并显示出来。
(6)同步显示:通常由于游戏复杂程序不同,游戏在计算机上运行的速度会不一。使用定时器和等待函数确保游戏和最大帧同步,通常认为30FPS(帧/秒)是可以接受的最低速率,而大多数动作玩家将他们的图形调整到不大于60FPS。(7)循环:返回到游戏的入口并重新执行上述全部步骤。
(8)关闭:这一步游戏结束,表示将退出主程序或游戏循环,并回到操作系统。然而,在用户进行结束之前,用户必须释放所有的资源并清理系统。
游戏基本流程简图如下:
3
图2-1 游戏基本流程图
2.2游戏系统元素阐述
游戏元素是指各类游戏的基本构成要素,该项目主要是侧重射击类游戏,那么其中主要包括4中元素:
(1)游戏界面:人物造型、战斗场地、动画效果等,当玩家在进行游戏时,界面的效果,风格将会在第一时间告诉给玩家,这是游戏的大致轮廓,其中主要包括以下2点:图形技术:2D和3D图形技术;游戏视角:第一人称视角,第三人称视角,俯视角。
(2)游戏创意:游戏的创作意义,新奇,惊人,震撼,实效,有较突出的独立性。
(3)可玩性:有较强的可玩性,情绪风格精神这三个方面特征。可玩性是玩家和乐趣之间的沟通桥梁,,不仅体现在单机玩家和电脑对抗中,也体现在
4
多人多角色的竞争中,良好的可玩性是游戏是否能够占领市场的作用之一。(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月首次
5
使用。更早以前.尚在研究阶段的发展中语言曾被称为“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已经毫无疑义地成
6
为正式国际标准。先前被临时命名为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)对于程序员来说非常的困难,因为,API函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。MFC是面向对象程序设计与Application framework的完美结合,它将传统的API进行了分类封装,并且为你创建了程序的一般框架。
7
2.3.2.3 关于Visual Studio 2010
Visual Studio是微软公司推出的开发
环境.是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市.其集成开发环境(IDE)的界面被重新设计和组织.变得更加简单明了。Visual Studio 2010同时带来了NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP).并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server.它还支持IBM DB2和Oracle数据库。
发展溯源
Dev-C++灵活又小巧.C++ Builder开发效率高;Turbo C是万人迷.Visual Studio的资格老。可如今.江湖上只剩下最后一个大佬Visual Studio了.其他几位不是支
持者渐少.不成气候.就是转投他人怀抱.中道衰落.让人难免生出几分遗憾。但是反过来.我们又对Visual Studio这位“江湖最后的大佬”增添了几分敬仰之情。据说这位老大又要出新的版本了.这些江湖八卦者.哪有错过的道理。要想深入的了解一个人.需要从他的童年开始。想了解Visual Studio.故事也就要从它的1.0开始。
Visual Studio 可以用来创建Windows平台下的Windows应用程序和网络应用程序.也可以用来创建网络服务、智能设备应用程序和Office插件。[1] 1992年4月.微软发布了革命性的操作系统Windows 3.1.把个人计算机引进了真正的视窗时代。微软在原有C++开发工具Microsoft C/C++ 7.0的基础上.开创性地引进了MFC(Microsoft Foundation Classes)库.完善了源代码.成为Microsoft C/C++ 8.0.也就是Visual C++1.0.并于1992年发布。Visual C++ 1.0是真正意义上的Windows IDE.这也是Visual Studio的最初原型。虽然以现在的眼光来看.这个界面非常简陋和粗糙.但是它脱离了DOS界面.让用户可以在图形化的界面下进行开发.把软件开发带入了可视化(Visual)开发的时代。从此.大佬的时代开始了。
重大突破
1998 年.微软公司发布了Visual Studio 6.0。所有开发语言的开发环境版本均升至 6.0。这也是Visual Basic 最后一次发布.从下一个版本(7.0) 开始.Microsoft Basic 进化成了一种新的面向对象的语言:Microsoft Basic. NET。由于微软公司对于Sun 公司Java 语言扩充导致与Java虚拟机不兼容而被Sun 告上法庭.微软在后续的Visual Studio 中不再包括面向Java 虚拟机的开发环境。
8
2002 年.随着.NET 口号的提出与Windows XP / Office XP 的发布.微软发布了Visual Studio .NET(内部版本号为7.0)。在这个版本的Visual Studio 中.微软剥离了Visual FoxPro 作为一个单独的开发环境以Visual FoxPro 7.0 单独销售.同时取消了Visual InterDev。与此同时.微软引入了建立在.NET 框架上(版本1.0)的托管代码机制以及一门新的语言C# (读作 C Sharp.意为C++++)。C# 是一门建立在C++ 和Java 基础上的现代语言.是编写.NET 框架的语言。
.NET 的通用语言框架机制(Common Language Runtime. CLR).其目的是在同一个项目中支持不同的语言所开发的组件。所有CLR 支持的代码都会被解释成为CLR 可执行的机器代码然后运行。
Visual Basic、Visual C++ 都被扩展为支持托管代码机制的开发环境.且Visual Basic .NET更是从Visual Basic 脱胎换骨.彻底支持面向对象的编程机制。而Visual J++也变为Visual J#。后者仅语法同Java 相同.但是面向的不是Java虚拟机.而是.NET Framework。
2003 年.微软对Visual Studio 2002 进行了部分修订.以Visual Studio 2003 的名义发布(内部版本号为7.1)。Visio 作为使用统一建模语言(UML)架构应用程序框架的程序被引入.同时被引入的还包括移动设备支持和企业模版。.NET 框架也升级到了1.1。
2005 年.微软发布了Visual Studio 2005。.NET 字眼从各种语言的名字中被抹去.但是这个版本的Visual Studio 仍然还是面向.NET 框架的(版本2.0)。它同时也能开发跨平台的应用程序.如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的软件.甚至包含代码测试功能。
这个版本的Visual Studio 包含有众多版本.分别面向不同的开发角色。同时还永久提供免费的Visual Studio Express 版本。
使用Visual Studio 2005. 专业开发人员能够:创建满足关键性要求的多层次的智能客户端、Web、移动或基于Microsoft Office的应用程序。
使用改进后的可视化设计工具、编程语言和代码编辑器.享受高效率的开发环境。
在统一的开发环境中.开发并调试多层次的服务器应用程序。
使用集成的可视化数据库设计和报告工具.创建SQL Server 2005解决方案。
使用Visual Studio SDK创建可以扩展Visual Studio IDE的工具。
Microsoft为单独工作或在小型团队中的专业开发人员提供了两种选择.Visual Studio 2005 Professional Edition和用于Microsoft Office系统的Visual Studio 2005工具。每种版本都在标准版的特性上进行了扩展.包括用于远程服务
9
程序开发和调试、SQL Server2005开发的工具.以及完整的、没有限制的开发环境。每种产品都可以单独购买或打包定购。
专业开发人员喜欢自由的使用.NET Framework 2.0.它是一种稳健的、功能齐备的开发环境.支持创建扩展Visual Studio集成开发环境的工具。
2.4本章小结
本章主要介绍了游戏开发的基本流程和重要元素同时写明了本系统的技术构架,并简单的介绍了本项目开发所使用的语言以及平台。为以后的开发打下了坚实的基础。
10
第3章 游戏分析
11 第3章 游戏分析
3.1 用户功能需求分析
由于本程序简单易操作,交互性好,对用户没什么特别要求。一般用户经过几分钟练系都可以熟悉本游戏的规则如图3-1和3-2所示。
图3-1 游戏界面示例图
12
3.2 系统性能要求
1.实时性
本应用为手机游戏因此对于用户的操作必须做出立即响应,否则本游戏即为失败。
2.易操作性
单机手机游戏的最大特点即为易操作性,用户在不看说明的情况下也能够玩,并且在玩过几遍之后即熟悉本游戏的规则。这是本应用对于操作性的要求。
3.3可行性分析
图3-2 游戏界面示例图
1.技术可行性
本游戏以C/C++语言为基础,以Visual Studio 2010(简称vs)为开发平台。通过微软提供的MFC框架实现的飞机射击游戏。C++,是在C语言的基础上发展而来,C++保留了C语言的所有优点,增加了面向对象的机制。C++面向对象编程语言具有如下4个基本特征:抽象,继承,封装,多态。MFC,微软基础类Microsoft Foundation Classes,实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是Windows下开发人员使用的专业程序C++ 开发包的SDK ,MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VS 血肉相连的部分MFC是Win API与C++的结合,API,即微软提供的WINDOWS 下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方。MFC是微软对API函数的专用C++封装,这种结合一方面让用户使用微软的专业C++ SDK来进行Win下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Win下用C++ & MFC编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合使得应用程序开发人员开发更加方便了,产品的开发周期大大降低,效率提高了。
2.操作可行性分析
本游戏以传统的C/S为体系结构,对用户的计算机硬件没有什么特别的要求,也不需要用户具有较高的计算机水平。只需一台安装了XP/win7等操作环境,声卡和显卡功能正常。
3.4本章小结
在本章,将项目对系统的需求,对玩家的需求以及项目的可行性进行了深入浅出的分析,确定本项目在技术上可行,在操作上也可行。
13