欢迎来到天天文库
浏览记录
ID:44921651
大小:310.01 KB
页数:27页
时间:2019-11-05
《C++实训报告 飞机大战游戏设计与开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实训报告飞机大战游戏设计与开发姓名***专业名称:数学专业班级:*****学号:******信息科学与工程学院二零一三年十一月目录1.概述…………………………………………………………………22.相关技术…………………………………………………………22.1获取矩形区域函数…………………………………………………………22.2添加爆炸效果函数…………………………………………………………22.3弹出对话框函数……………………………………………………………32.4字体的个性化输出函数………………………………………………
2、……42.5键盘控制战机位置和发射子弹的函数……………………………………42.6设置定时器…………………………………………………………………42.7双缓冲技术…………………………………………………………………52.8内存释放技术………………………………………………………………53.需求分析……………………………………………………………53.1功能需求分析………………………………………………………………53.2数据需求分析………………………………………………………………63.3行为需求分析……………………………
3、…………………………………64.总体设计与详细设计……………………………………………64.1系统模块划分………………………………………………………………84.2主要功能模块………………………………………………………………84.3扩展功能设计思路…………………………………………………………95.编码实现…………………………………………………………96.测试情况说明……………………………………………………246.1主要模块测试情况(白盒)………………………………………………246.2主要功能测试情况(黑盒)………
4、………………………………………247.实训中遇到的主要问题及解决方法……………………………258.实训体会…………………………………………………………25信息科学与工程学院软件实践实训报告1.概述飞机大战游戏是基于Windows桌面的射击类游戏。做为一个游戏首先要保证游戏本身的规则,而这个版本的一个重要的功能就是其2D的展现形式。飞机大战游戏作为PC中一款桌面游戏,界面简洁流畅、游戏方式简单,玩起来易于上手。其实现的功能为:实现游戏对象的爆炸特效、声音特效、文字提示功能和界面背景,其主要是遵循一定的游戏规则进
5、行游戏。游戏中的主要角色可分为如下几个基本部分:战机、敌机、战机的导弹、敌机的子弹。其主要遵循的游戏规则为:战机数量为1;由玩家通过键盘控制(方向键控制位置、空格键发射导弹)战机;导弹释放存在间隔,有一定的运行速度;导弹遇到敌机发生爆炸,敌机被炸毁,玩家得分;由计算机控制敌机自动向战机发动攻击;敌机数量随机,计算机生成敌机时随机选择位置;敌机从游戏区域的上下两端进入;敌机行驶期间,不左右移动,不反向移动;敌机发射炸弹对战机进行攻击,运行线路为直线,方向为从下至上,或从下至上,不可左右移动,敌机炸弹击中战机,战
6、机生命值减1。该游戏有关卡,战机生命值减为0,游戏结束,选择是否重新开始;战机仍有生命值时,并且得到要求的分数可进入下一关。2.相关技术此次实训的飞机大战游戏其中的技术主要就是一些函数(获取矩形区域函数、添加爆炸效果函数、弹出对话框函数、字体的个性化输出函数、键盘控制战机位置和发射子弹的函数)、设置定时器、内存释放和双缓冲技术。2.1获取矩形区域函数CRectCBomb::getRect(void){returnCRect(CPoint(Pos.x,Pos.y),CPoint(Pos.x+55,Pos.y+2
7、0));}CRectbombRect=bomb->getRect();CRectCEnemy::getRect(void){returnCRect(CPoint(Pos.x,Pos.y),CPoint(Pos.x+35,Pos.y+35));}CRectenemyRect=enemy->getRect();CRecttempRect;tempRect.IntersectRect(&bombRect,enemyRect)//判断两个矩形是否有交接2信息科学与工程学院软件实践实训报告2.2添加爆炸效果函数Play
8、Sound((LPCTSTR)IDR_WAVE2,AfxGetInstanceHandle(),SND_RESOURCE
9、SND_ASYNC);//此函数用于将ID为IDR_WAVE1的音频在执行此语句时进行播放。2.3弹出对话框函数if(AfxMessageBox(L"GAMEOVER!重新开始?",MB_YESNO)==1){//清空敌机链表ListEnemy1.RemoveAll();List
此文档下载收益归作者所有