- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
超详细版陨石撞飞机汇编
项目五:陨石撞飞机平面游戏设计 第14、15、16周完成 2010/06/04 实验内容安排 4个基础性实验,1个综合性实验 基础回顾(6学时)+3 =9 实验项目1(A) 类与对象(6学时) 实验项目1(B) 继承与派生(3学时)+3 =6 实验项目2 多态性(3学时) 实验项目3 小小图书馆(9学时)-3 =6 实验项目4 简单计算器(9学时) 实验项目5 陨石撞飞机(12学时)-3 =9 项目五:陨石撞飞机 一、实验目标与要求 设计一个陨石撞飞机的平面游戏:陨石不断地向下落,飞机通过上下左右键移动以躲避陨石。如图2_1所示。 二、分析 关键知识点: Visual C++6.0中位图操作,Bitmap类的应用,键盘响应(消息WM_KEYDOWN)处理函数,定时器。 初步实验步骤分析 1. 在Visual C++中新建一个工程,命名为Plane。 1)工程类型为: MFC AppWizard[exe]。 2)在MFC AppWizard-Step1对话框中设置应用程序的类型,选择单文档结构,其余可以采用默认选项,建立一个单文档工程文件,即得到一个应用程序框架文件,并在项目工作区窗口打开生成的应用程序的项目。 2. 添加资源:陨石位图、飞机位图。 1)在ResourceView资源视图选项卡中,插入或添加新的资源Resource,如图1所示: 2)在Insert Resource(插入资源) 对话框中选择Bitmap(位图)选项,单击New(新建)按钮,如图2所示: 该位图的ID默认为IDB_BITMAP1. 3)在ResourceView资源视图选项卡中 ①飞机制作: 双击IDB_BITMAP1选项,打开资源编辑器中的位图编辑器,设计一个飞机位图文件,如下图所示。 ②陨石制作: 用前面相同方法,在ResourceView资源视图选项卡中,新建(或添加)几个位图,用于设计几个(3~5个)不同的陨石位图文件(每个陨石用一幅图像文件),各个位图的ID默认为IDB_BITMAP2、 IDB_BITMAP3、 IDB_BITMAP4、 IDB_BITMAP5。 3.对飞机的处理 1)在PlaneView.h 中添加: 一个CBitmap类型的变量m_plane; 两个int 类型变量mx,my 表示飞机的坐标; 一个绘制飞机图形的函数void DrawPlane(); //函数原型声明,实现可放在PlaneView.cpp中。 void DrawPlane(CDC *pDC); 以上数据成员均为public 属性。 2.位图显示分两步: 先将图形加载到内存中,再将内存中的图形显示到屏幕上。 通过,在PlaneView.cpp中自行添加一个函数来实现。 void CPlaneView::DrawPlane(CDC *pDC) { CDC MemDC; MemDC.CreateCompatibleDC(pDC); BITMAP bm; m_plane.GetObject(sizeof(BITMAP),bm); CBitmap MemBitmap; MemBitmap.CreateCompatibleBitmap(pDC,bm.bmWidth,bm.bmHeight); CBitmap *pOldBitmap; pOldBitmap=(CBitmap*)MemDC.SelectObject(MemBitmap); MemDC.SelectObject(m_plane); pDC-BitBlt(mx,my,bm.bmWidth,bm.bmHeight,MemDC,0,0,SRCCOPY); MemDC.SelectObject(pOldBitmap); } 3.修改构造函数与OnDraw函数 添加代码: 构造函数: mx=100; my=100; m_plane.LoadBitmap(IDB_BITMAP1); OnDraw函数: DrawPlane(pDC); //调用绘制飞机函数 4.添加键盘响应处理函数(OnkeyDo
文档评论(0)