飞机大作战游戏实训总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

飞机大作战游戏实训总结
1.概述
飞机大战游戏是在Microsoft Visual Studio编程软件的MFC环境下制作的一款游戏,界面简洁流畅、游戏方式简单。

游戏主要实现的功能和规则如下:
(1)利用键盘中的上下左右键控制我方战机,空格键发射子弹。

战机初始有一定量的血量。

(2)屏幕上随机产生敌机,战机产生的数量和当前关卡,关卡越高,产生的敌机越多,游戏难度越大。

而且敌机产生的位置和速度是不确定的。

只有当我机位于敌机下方时,敌机会产生子弹,默认情况下是不发射任何子弹的。

(3)战机子弹打中敌机,敌机就会爆炸,同时玩家分数会增加,每得1000分进人下一关。

2.相关技术
在设计该游戏时,用到许多技术,这里介绍几个相对重要的技术。

关于碰撞检测的相关函数:
用CRect类的GetRect()函数可以获得当前对象的矩形区域,IntersectRect()并用此函数判断战机与敌机,子弹与战机,我方导弹与敌机,战机与物品是否相撞。

CObList链表:
使用CObList链表来分别存储敌机,炸弹,导弹,爆炸效果。

CobList类似于一个双向链表,POSITION类型的变量为链表的键。

使用POSITION变量,既可以作为链表循环中的循环变量,也可以作为标记某个位置的标签。

我们可以通过获得某元素的POSITION来访问它。

本程序中主要用到的函数有:
GetHeadPosition()——获取链表首元素的POSITION;AddTail ()——向链表尾部添加新的元素;GetNext(POSITION&rPosition)返回当前rPosition指向的元素,并使rPosition指向下一个元素。

设置定时器、销毁定时器
SetTimerO函数来设置定时器,控制每隔多少毫秒执行一次什么任务。

用Ki11Time()函数来销毁定时器。

双缓冲技术
为了避免窗体频繁闪烁,引入双缓冲技术。

双缓冲的原理是先建立一个内存DC,捋游戏对象绘制到内存DC上,再一次性的把内存中绘制好的图形“拷贝”到设备DC上。

采取这种方法可以提高绘图速度,极大的改善绘图效果。

3.总体设计与详细设计
系统模块划分
有两个主要的部分组成,分别是规则子系统、游戏对象子系统。

规则子系统
该子系统主要是实现飞机大战各项游戏规则。

实现了需求中的游戏规则。

这个系统模块实现了敌机对战机的攻击、以及游戏对象碰撞
检测规则。

攻击规则:
敌机在战机上方时发射炸弹,炸弹从上至下射向战机
碰撞规则:
战机所绝形区城与奖品所在楚彩区城混时,我示战获得该奖励。

敌机击中战,战机血器减少。

战领击中敌机,敌机被炸毁,战领得分端通。

战机血露为0,游戏结哀。

主要功能模块:
主要功能模块主要就是那些类的功能模块,主要有:
1、各个游戏对象的贴图模块
2、敌机数量、方向、速度以及子弹的数量、方向和速度控制模块。

3、战机的导弹的数目、方向和速度控制模块。

4、战机的键盘控制位置模块。

5、敌机、子弹和战机、导弹的碰撞检测以及爆炸模块。

6、背景添加模块。

7、战机速度控制模块。

8、游戏关卡和游戏难易度。

9、游戏得分和生命值控制以及游戏结束。

10、游戏音效控制模块。

相关文档
最新文档