天津理工大学2010届本科毕业设计说明书
开始 判断gameover 添加敌人 停止音乐 添加一敌人 设置游戏变量 更新子画面 Newgame() 绘制游戏 发送到现存上 清理DC 结束 图5.2 游戏循环
5.game end
此函数目的是释放程序所占有的资源,以免造成内存资源的浪费。首先关闭声音,然后清除双缓存,最后清除位图资源。
- 22 -
天津理工大学2010届本科毕业设计说明书
5.2.2 游戏功能函数实现
1.HandleKey
此函数是为了处理键盘消息的函数,首先根据键盘消息将其记录在 flag中,flag |= 0x01,这样做的目的是为了处理组合键。当坦克向斜上方前进时会遇到同时按下两个键的情况,此时就可以flag |= 0x08;累加进行了。
int flag =0;
if (GetAsyncKeyState(VK_LEFT) < 0){ flag |= 0x01;} if (GetAsyncKeyState(VK_RIGHT) < 0){flag |= 0x02;} if (GetAsyncKeyState(VK_UP)<0){flag |= 0x04;} if (GetAsyncKeyState(VK_DOWN)<0){flag |= 0x08;} RECT rTPosition =g_pTankSprite->GetPosition(); //g_pTankSprite switch(flag) {
case 0x01: case 0x02: case 0x04:{ case 0x08: // to do case 0x05: case 0x09: case 0x06: case 0x0a: }
游戏的所有显示信息都在这个函数绘制,包括背景,子画面,分数,生命数等等。绘制时注意绘制的顺序,首先绘制背景,然后是子画面,而在子画面之中就是可以根据z轴来确
- 23 -
{rTPosition.left-=6;g_pTankSprite->SetCurFrame(4);}break;//left {rTPosition.left+=6;g_pTankSprite->SetCurFrame(0);}break;//right rTPosition.top-=6;g_pTankSprite->SetCurFrame(6);}break;//up {rTPosition.top+=6;g_pTankSprite->SetCurFrame(2);}break;//down
{rTPosition.left-=4;rTPosition.top-=4;g_pTankSprite->SetCurFrame(5);}break;//left up {rTPosition.left-=4;rTPosition.top+=4;g_pTankSprite->SetCurFrame(3);}break;//left down {rTPosition.left+=4;rTPosition.top-=4;g_pTankSprite->SetCurFrame(7);};break;//right up {rTPosition.left+=4;rTPosition.top+=4;g_pTankSprite->SetCurFrame(1);};break;//right down
2.gamepaint
天津理工大学2010届本科毕业设计说明书
定先绘制那些字画面后绘制哪些字画面。接下来判断是否为演示模式,如果是演示模式则绘制闪屏,绘制结束进行显示,如果不是演示模式则绘制分数和剩余生命数。
开始 绘制背景 按顺序绘制子画面 G_bDemo 绘制闪屏 绘制分数和生命数 显示 结束 图5.3 游戏显示
5.3 系统开发工具
通过对该系统功能及应用各方面的综合分析,开发环境如下:
操作系统 windows XP,首先它的界面图形化使用简单,在Windows中的操作可以说是“所见即所得”,所有的东西都摆在你眼前,只要移动鼠标,单击、双击即可完成。其次:这帅哦是最重要的多用户、多任务,Windows系统可以使多个用户用同一台电脑而不会互相影响。多任务是现在许多操作系统都具备的,这意味着可以同时让电脑执行不同的任务,并且互不干扰。这对一个休闲游戏来说是必不可少的。出色的多媒体功能,这也是Windows吸引人们的一个亮点。在Windows中可以进行音频、视频的编辑/播放工作,可以支持高级的显卡、声卡使其“声色具佳”。用户将相应的硬件和电脑连接好后,只要有其驱动程序Windows就能
- 24 -
天津理工大学2010届本科毕业设计说明书
自动识别并进行安装。用户再也不必像在DOS一样去改写Config.sys文件了,并且有时候需要手动解决中断冲突。几乎所有的硬件设备都有Windows下的驱动程序。所以在运行游戏是就不必担心需要进行繁琐的环境配置了。
Windows还具有众多的应用程序在Windows下有众多的应用程序可以满足用户各方面的需求。Windows下有数种编程软件,有无数的程序员在为Windows编写着程序。并且windows 设施使用最广泛的操作系统。可以保证可以玩此游戏的人群尽量的大。
对于开发工具,选择用vs2005,它具有以下优势:首先用户界面集成:工具间的无缝集成是增强生产效率的关键。Visual Studio Team System 提供跨整个 SDLC 工具套件的、一致的用户体验。对于开发人员而言,可以在他们当前的开发环境中使用某些活动(例如,单元测试、工作项跟踪、代码剖析以及代码分析)。
其次数据集成:通过使用一个公共的跨工具集的数据仓库,Visual Studio Team System 解决了在大多数 SDLC 工具中建立数据仓库这一问题,并启动了一个聚合的项目状态视图。Visual Studio Team System 中集成的数据将开创一条新路 — 通过平衡利用贯穿于 SDLC 的大量、多样的数据来管理项目规则。Visual Studio Team System 会收集精确的数据 — 不仅限于缺陷跟踪,而是包括测试结果、代码涵盖、代码生成、任务进度等这些贯穿于团队常规工作流程的数据。该数据以某些标准的报告方式呈现,客户和 Microsoft 内部团队已在报告中建立了成功项目管理的关键规则。此外,团队还能够创建自定义报告。仅当以项目的大范围上下文查看数据时,团队才能够精确地报告项目状态。
最后过程集成:在 Visual Studio Team System 中,工具行为由项目开始时选择的过程决定。通过将过程与工具相集成,Visual Studio Team System 帮助确保在项目各阶段之间或各种项目角色之间避免丢失任何内容。通过自动处理团队成员之间的工作调整,可以提高团队效率。公司通过使过程标准化,能够纠正贯穿于过程改进中的系统问题,而无需增加团队的工作量。此外,过程集成并不增加工作量,而通常能够降低与 SDLC 中所采纳过程相关的开销。
界面设计上使用PHOTOSHOP CS4 ,从功能上看,Photoshop可分为图像编辑、图像合成、校色调色及特效制作部分。其中图像合成则是将几幅图像通过图层操作、工具应用合成完整的、传达明确意义的图像,这是图片设计的必经之路。PHOTOSHOP提供的绘图工具让外来图像与创意很好地融合,成为可能使图像的合成天衣无缝。
5.4 开发语言
C++最大的优势在于她的通用。另外一些比较:与C语言比开发应用软件更容易,比Java做底层更容易,与VB比运行效率更高。C++是一门 “通用语言”,不是象C那样“通用的”底层语言,也不是象Java那样其实只能在一个平台上运行的“跨平台”语言,而是真正的通用:通用于所有层次、通用于所有平台、通用于所有领域,对所有的应用都不偏不倚、一视同仁。他与windows没有关系,就像与Linux没有关系一样。
- 25 -
天津理工大学2010届本科毕业设计说明书
还有C++是“全面”的。虚函数、虚基类、异常处理……这些都是C++所具备的。C++考虑问题永远是综合的,而非单方面的。C++并不限制其实现产品,所以每个特定应用领域都可以有其特定的编译器,它们帮助程序员达到各自最佳的开发效率。
第六章 游戏测试
6.1 测试概述
是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域
软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测试情况撰写测试报告。测试是为了证明程序有错,而不能保证程序没有错误。
6.2 测试计划
具体测试计划为:
1.测试在不同的Windows 平台上是否可以运性。 2.测试闪屏是否可以正常显示。
3.测试demo模式下 ,弹人坦克是否可以正常加载和运行。 4.测试游戏是否可以正常开始和结束。 5.测试游戏分数获得是否合理。
6.测试测试游戏运行时cpu 以及内存 占用是否合理。 8.测试我方坦克是否运行合理。 9.测试游戏是否能够重新开始。
6.3黑盒测试
经测试此游戏可以在windows XP或win7上无任何条件运行。闪屏可以正常显示并且敌人坦克顺利加载完毕,敌人坦克也可以顺利移动,便捷动作也十分正常
- 26 -