- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、题目
陨石撞飞机综合性实验
二、中文摘要
用MFC设计一个陨石撞飞机的平面游戏:陨石不断地向下落,飞机通过上下左右键移动以躲避陨石。当陨石碰撞了飞机时,显示提示对话框,及飞机爆炸图像。确定后在碰撞位置重新开始游戏。三次碰撞后显示提示对话框,游戏结束。
三、关键词
MFC、Bitmap、timer、键盘响应(WM_KEYDOWN)…]选择Bitmap选项,单击[新建]即可。绘出一个飞机,ID为(IDB_BITMAP1)、五个陨石(IDB_BITMAP2~IDB_BITMAP6)和一个炸弹位图(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;
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); //飞机位图调用
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);
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;
MemBi
文档评论(0)