- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 训 报 告
设计与开发
目 录1. 概述 4
2. 相关技术 4
2.1 透明贴图技术 4
2.2 CObList链表 4
2.3获取矩形区域函数 4
2.4弹出对话框函数 5
2.5字体的个性化输出函数 5
2.6设置定时器 5
2.7双缓冲技术 5
2.8 内存释放技术 6
2.9对话框中添加动态按钮 6
2.10检测方向键按下 6
3. 需求分析(用结构化方法或面向对象方法给出系统的主要需求模型) 6
3.1功能需求分析 6
3.2 数据需求分析 7
3.3 行为需求分析 7
3.4 其他需求 8
4. 总体设计与详细设计 8
4.1 系统模块划分 9
4.2 主要功能模块 10
4.3 扩展功能设计思路 10
5. 编码实现 11
5.1游戏初始创建 11
5.2定时器 11
5.3背景及游戏开始、结束界面绘制函数 11
5.4键盘控制函数 12
5.5游戏对象进行碰撞测试和碰撞销毁 13
5.6创建动态按钮(开始游戏、游戏规则) 13
5.6重新开始游戏代码 14
5.7设置游戏难度代码 14
5.8游戏结束时释放资源函数 15
5.9调整对话框大小函数 15
5.10开始界面背景绘制函数 15
5.11选择下一关卡以及选择完成后的执行代码 16
6.测试情况说明。 17
6.1主要模块测试情况(白盒) 17
6.11各游戏对象碰撞检测爆炸模块测试 17
6.12战机导弹的方向速度模块测试 17
6.13文字显示,游戏结束和关卡进入模块测试 18
6.14设置游戏难度和重新开始模块测试 18
6.2 主要功能测试情况(黑盒) 18
6.21各游戏对象碰撞检测爆炸模块测试 18
6.22敌机子弹导弹的方向速度模块测试 19
6.23文字显示,游戏结束和关卡进入模块测试 19
6.24设置游戏难度和重新开始模块测试 19
7. 实训中遇到的主要问题及解决方法 19
8. 实训收获与体会 20
1. 概述战机对象的移动的随机出现和发射子弹、、生命’键发射导弹)战机,战机有一定的运行速度导弹击毁敌机后导弹架和生命包导弹架可以增加战机导弹数量,生命包可以增加战机生命boss从游戏区域的左上角端进入,左右位置随机;敌机行驶期间,可左右移动,可反向移动;当敌机到达战机下方时发射炸弹对战机进行攻击。炸弹纵向由发射位置起至游戏区域结束;炸弹遇到战机时发生爆炸,战机减生命值,炸弹消失;战机与boss碰撞,战机被毁,在游戏界面左上角出现,左向右运动客机上有,导弹击中客机油箱客机爆炸,玩家减分。玩家战机生命值为,游戏结束,并显示玩家得分。2. 相关技术
2.1 透明贴图技术
2.2 CObList链表
CObList bomblist; //主要是定义一个CObList类的一个链表对象用于存储所有的此种相关的对象,易于后续的添加删除和提取数据。
POSITION posball=NULL,posball_t=NULL; //定义指针
CBomb *temp = new CBomb();
temp=pDoc-bomblist.GetHeadPosition();//指针读取头结点
temp= (CBomb *)pDoc-bomblist.GetNext(posball); //指针读取下一个结点
2.3获取矩形区域函数
CRect rc; //定义
GetClientRect(rc); //获取其矩形区域获取结果课为:rc.Width() //矩形区域的宽度rc.Height() //矩形区域的高度
CRect tmpRect;
tmpRect.IntersectRect(bRect,eRect))//判断两个矩形是否有交接
2.4弹出对话框函数
if(AfxMessageBox(L是否进入下一关?,MB_YESNO)==6){}
//此函数主要是弹出对话框供用户进行选择,当用户点击确定按钮时执行此函数的{}内的语句进行继续运行。
2.5字体的个性化输出函数
MemDC.SetBkMode(TRANSPARENT);
MemDC.SetTextColor(RGB(0, 0, 0));
CFont font;
//创建一个字体对象;LOGFONT lf;
memset(lf, 0, sizeof(LOGFONT));
lf.lfHeight = 40;
lf.lfWidth = 20;
//设置字的高度和宽度;font.CreateFontIndirect(lf);
// HFONT CreateFontIndirect(CONST LOGFONT *lplf);
MemDC.SelectObject(font);
char strData[100];
MemDC.TextOut(260, 350, (CString
文档评论(0)