MFC_陨石撞飞机实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.. .
.. .
一、题目
陨石撞飞机综合性实验
二、中文摘要
用MFC设计一个陨石撞飞机的平面游戏:陨石不断地向下落,飞机通过上下左右键移动以躲避陨石。当陨石碰撞了飞机时,显示提示对话框,及飞机爆炸图像。确定后在碰撞位置重新开始游戏。三次碰撞后显示提示对话框,游戏结束。
三、关键词
MFC、Bitmap、timer、键盘响应(WM_KEYDOWN)
四、前言
此程序大多代码出自参考资料,一小部分代码为搜索资料并加工完成,其功能尚有不完善之处。
五、软件开发过程
(一)、新建MFC APPWizard[exe]单文档工程文件
在Visual C++中新建一个工程,命名为Plane。工程类型为:MFC AppWizard[exe]。在MFC AppWizard-Step1对话框中设置应用程序的类型,建立一个单文档工程文件,得到一个应用程序框架文件。
(二)、添加资源:、飞机位图、陨石位图、爆炸位图。
在[插入]-[资源…]选择Bitmap选项,单击[新建]即可。绘出一个飞机,ID 为(IDB_BITMAP1)、五个陨石(IDB_BITMAP2~IDB_BITMAP6)和一个炸弹位..
专业软件工程年级、班级09级8班
课程名称计算机综合性实验实验项目陨石撞飞机
实验时间2010 年 6 月20 日
实验指导老师黄荔实验评分
图(IDB_BITMAP7),如下图。
飞机位图陨石位图爆炸位图
(三)、在planeView.h头文件中声明所需变量和函数CBitmap m_plane; //声明一个CBitmap类型的飞机变量m_plane int mx,my;//表示飞机坐标
CBitmap m_bump; //爆炸位图变量
int mpx,mpy;//表示爆炸位图的坐标
int t; //爆炸次数
//声明陨石位图的成员变量为CBitmap类型的变量
CBitmap m_stone1,m_stone2,m_stone3,m_stone4,m_stone5;
//声明陨石的坐标变量为int类型:
int nstone1x,nstone1y;
int nstone2x,nstone2y;
int nstone3x,nstone3y;
专业软件工程年级、班级09级8班
课程名称计算机综合性实验实验项目陨石撞飞机实验时间2010 年 6 月20 日
实验指导老师黄荔实验评分
int nstone4x,nstone4y;
int nstone5x,nstone5y;
再声明函数成员
void CPlanView::DrawPlane(CDC *pDC);//飞机位图函数
void CPlanView::Drawbump(CDC *pDC); //爆炸位图函数
// 声明绘制陨石的函数原型:
void DrawStone1(CDC *pDC);
void DrawStone2(CDC *pDC);
void DrawStone3(CDC *pDC);
void DrawStone4(CDC *pDC);
void DrawStone5(CDC *pDC);
以上成员(数据成员、成员函数)均为public属性
(四)在planview.cpp文件中添加函数
1)、修改构造函数
mx=100; my=100; t=0; //赋初值
m_plane.LoadBitmap(IDB_BITMAP1); //飞机位图调用
专业软件工程年级、班级09级8班
课程名称计算机综合性实验实验项目陨石撞飞机实验时间2010 年 6 月20 日
实验指导老师黄荔实验评分
m_bomb.LoadBitmap(IDB_BITMAP7); //爆炸位图调用
//添加陨石初始化操作代码,随机产生
nstone1x=rand()%500; // 陨石1 x方向随机数0~499 nstone1y=10;
m_stone1.LoadBitmap(IDB_BITMAP2);
nstone2x=rand()%500; // 陨石2 x方向随机数0~499 nstone2y=10;
m_stone2.LoadBitmap(IDB_BITMAP3);
nstone3x=rand()%500; // 陨石3 x方向随机数0~499 nstone3y=10;
m_stone3.LoadBitmap(IDB_BITMAP4);
nstone4x=rand()%500; // 陨石4 x方向随机数0~499 nstone4y=10;
m_stone4.LoadBitmap(IDB_BITMAP5);
专业软件工程年级、班级09级8班
课程名称计算机综合性实验实验项目陨石撞飞机实验时间2010 年 6 月20 日
实验指导老师黄荔实验评分
nstone5x=rand()%500; // 陨石5 x方向随机数0~499 nstone5y=10;
m_stone5.LoadBitmap(IDB_BITMAP6);
2)、修改ondraw()函数
添加DrawPlane(pDC); //调用绘制飞机函数
3)、添加DrawPlane()和Drawbump()函数
void CPlaneView::DrawPlane(CDC *pDC)
{
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
BITMAP bm;
m_plane.GetObject(sizeof(BITMAP),&bm);
CBitmap MemBitmap;