飞机大战程序设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计综合实践
实习报告
一、实习题目:飞机大战游戏
二、实习时间:2014.9.20-2014.9.30实习地点:J13-132、232
三、实习任务:通过项目实战,掌握C++面向对象编程的基础技术和Windows 应用程序的编程方法,能够运用MFC技术及其开发环境进行小项目的开发。
四、小组分工说明:
五、实习成绩
六、指导教师对实习的评语:
指导教师(签章):
年月日
飞机大战游戏
1.实习目的
1.1使学生全面了解软件项目实施的过程,理解软件企业对于程序员的基本
素质和技术能力要求。
1.2使学生掌握C++及Window程序设计的基本技术,能够运用MFC技术及其
开发环境进行小型项目的开发。
1.3重点培养学生的独立创新精神和查阅资料能力,提高其口头和书面的沟
通能力。
1.4使学生掌握快速学习新知识、新技术方法,培养良好的分析问题和解决
问题的能力
1.5重点提高学生的编程能力,使学生建立正确的编程理念,养成规范的编
程习惯。
2. 实习计划
1、9.20—9.21先建立CGameObject 类,利用继承机制,根据此类进行依次的派生。
2、9.22—9.25再建立派生类:Bomb,Ball,Enemy,MyPlane,Explosion等,
并实现各自功能。
3、9.26—9.29在xxView.cpp中的OnTimer中实现背景的设置,对敌机,
导弹,敌机子弹,爆炸效果的绘制,以及敌机子弹和战机,导弹和敌机的碰撞检验,并添加爆炸效果
4、9.29—9.30最后释放pDC以及定时器
3.实习过程
3.1 技术准备
透明贴图技术
绘制透明位图的关键就是创建一个“掩码”位图(mask bitmap),这个“掩码”位图是一个单色位图,它是位图中图像的一个单色剪影。
在详细介绍实现过程之前先介绍下所使用的画图函数以及函数参数所代表的功能;整个绘制过程需要使用到BitBlt()函数。整个功能的实现过程如下:
(1) 创建一张大小与需要绘制图像相同的位图作为“掩码”位图;
(2) 将新创建的“掩码”位图存储至掩码位图的设备描述表中;
(3) 把位图设备描述表的背景设置成“透明色”,不需要显示的颜色;
(4) 复制粘贴位图到“掩码”位图的设备描述表中,这个时候“掩码”位图
设备描述表中存放的位图与位图设备描述表中的位图一样;
(5) 把需要透明绘制的位图与对话框绘图相应区域的背景进行逻辑异或操
作绘制到对话框上;
(6) 把“掩码”位图与这个时候对话框相应区域的背景进行逻辑与的操作;
(7) 重复步骤5的操作,把需要透明绘制的位图与对话框绘图相应区域的背
景进行逻辑异或操作绘制到对话框上;
(8) 最后把系统的画笔还给系统,删除使用过的GDIObject,释放非空的指
针,最后把新建的设备描述表也删除。
BOOL CGameObject::LoadImage(CImageList& imgList,UINT