飞机大战实训报告.docx
《飞机大战实训报告.docx》由会员分享,可在线阅读,更多相关《飞机大战实训报告.docx(17页珍藏版)》请在第一文库网上搜索。
1、程序设计综合实践实习报告学院名称专业班级学生姓名学号指导教师山东科技大学一、实习题目:飞机大战游戏的设计与实现二、实习时间:18周19周实习地点:三、实习任务:1 .基本功能要求:&机大战游戏必须运用透明贴图、按键处理、定时控制、双缓冲技术等技术实现战机(玩家)和敌机(计算机)对战功能2 .扩展功能:在完成基本功能基础上可以增加双人对战、游戏积分制、声音效果、多种子弹类型、客机类型、游戏关卡设计、多种类型敌机、游戏中间结果存贮等功能四、小组分工说明:自己完成五、实习成绩六、指导教师对实习的评语:指导教师(签章):2015年月日1 .概述41 .1实训项目简介42 .2实训项目功能说明42 .相
2、关技术52.1 透明贴图技术52.2 获取矩形区域并判断两个矩形区域是否相撞52.3鼠标控制我方战机52.4Windows定时器.术62.5COb1iSt链表62.6对话框的应用72.7双缓冲技术73.需求分析73.1功能需求分析71.1 2数据需求分析.73.3 行为需求分析73.4 其他需求74.总体设计与详细设计84.1 系统模块划分84.2 主要功能模块84.2.1系统主要类图84.2.2飞机大战游戏设计执行流程图81.3 扩展功能设计思路91.4 软件结构设计体会95 .编码实现101. 1绘制游戏背景位图的程序105. 2各个游戏对象的绘制106. 3我方战机位置的动态控制127.
3、 4各个游戏对象碰撞的实现138. 5游戏界面输出当前游戏信息156 .测试情况说明176 .1主要模块测试情况177 .2主要功能测试情况187 .实训中遇到的主要问题及解决方法19198 .实训收获与体会1 .概述1.1 实训项目简介本次实训项目是应用MFC编程完成一个界面简洁、运行流畅、操作简单、易于上手的飞机大战。该飞机大战项目运用的主要技术是MFC编程中的一些函数、链表、贴图技术。1.2 实训项目功能说明1.3 .1基本功能(1)设定我方战机有速度初值,可通过键盘方向键控制我方战机位置,空格键控制我方战机发射导弹。(2)游戏界面中敌机出现的位置、敌机导弹的发射是随机的,敌机有不同的速
4、度。(3)敌机以及敌机发射的导弹,一旦超出游戏界面边界,则删除出界对象。(4)敌机导弹击中我方战机、我方战机导弹击中敌机、我方战机与敌机碰撞均会产生爆炸效果。并且产生爆炸效果后,敌机、敌机导弹、我方战机、我方战机导弹消失,我方战机生命值减一,得分加五分。1.2.2附加功能(1)为游戏界面添加了背景图片。(2)为游戏设置积分制,每击落一架敌机或与敌机相撞得分加5分。(3)敌机从游戏界面上界和下界随机飞出。(4)为游戏设置关卡制,每得分增加IOO分自动进入下一关,每进入新的一关,通过减缓我方战机速度来逐渐增加游戏难度。(5)添加无敌模式,当得分达到IoOO分后,按“Z”键即可开启无敌模式。开启无敌
5、模式后,我方战机生命值增加到999,并且被敌方战机击中或与敌方战机相撞生命值不减少,击落敌机分数继续增加。(6)游戏界面显示当前游戏信息,游戏界面左上角分别显示“我的分数、战机生命值、开启无敌模式还需杀敌的数量、关数,右上角显示”是否开启了无敌模式”,当达到开启无敌模式的条件后,右上角显示“按Z键开启无敌模式”,开启无敌模式后,右上角变为“无敌模式已开启”,右下角显示开启无敌模式需达到的条件,当每进入新的一关,游戏界面中心显示“玩的不错,进入第X关”。(7)增加尿标左键控制我方战机发射导弹的功能。(8)当我方战机炸毁后,弹出对话框提示玩家是否重新开始游戏。2 .相关技术2.1 透明贴图技术绘制
6、透明位图的关键就是创建一个“掩码”位图(maskbitmap),这个“掩码”位图是一个单色位图,它是位图中图像的一个单色剪影。(1) DDB可以用MFC中的CBit1naP来表示,而DDB一般储存在资源文件中,在加载时只需通过资源ID号就可以将图形装入。(2) BOO1CBitmap:I1oadBitmap(UINTnIDResource)可以装入指定DDB,但是在绘制时必须借助另一个和当前绘图DC兼容的内存DC来进行。(3) 通过CDC:BitB1TO绘制图形,同时指定光栅操作的类型。2.2 获取矩形区域并判断两个矩形区域是否相撞首先,使用CReCt定义一个对象,然后使用GetReCt(&对
7、象名)函数,获取界面的矩形区域rect.Wid1hO为矩形区域的宽度,rect.Heigh1O为矩形区域的高度。使用InterSeCtRCCt(&,&)函数来判断两个源矩形是否有重合的部分。如果有不为空,则返回非零值;否则,返回0。2. 3鼠标控制我方战机WM_1BUTT0ND0WN(鼠标左键被按下)对应的函数为On1BUttOnDOWn(UINTnF1ags,CPointpoint)当鼠标左键被按下时,我方战机两翼开始发射导弹。voidCP1aneGameView:On1ButtonDown(UINTnF1ags,CPointpoint)(/TODO:在此添加消息处理程序代码和/或调用默认值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 飞机 大战 报告
