实训报告飞机大战游戏设计与开发郭玉豪专业名称: 信息与计算科学班级: 10-2 学号: 201001051506 信息科学与工程学院二零一二年十二月信息科学与工程学院软件实践实训报告 2 目录 1. 概述…………………………………………….3 2. 相关技术…………………………………………….3 3. 总体设计与详细设计…………………………….3 系统模块划分…………………………………………….3 主要功能模块……………………………………….4 4. 编码实现……………………………………….4 5. 实训中遇到的主要问题及解决方法…………………….21 6. 实训体会………………………………………. 21 信息科学与工程学院软件实践实训报告 3 1. 概述本项目是关于飞机大战的游戏, 敌机的出现是随机的, 敌机的速度和子弹速度也是随机的, 通过键盘上的左右上下及空格按钮, 控制战机, 空格键是战机发射导弹的, 当战机与敌机及敌机子弹; 敌机与战机的导弹区域相同时就会爆炸, 并且产生爆炸效果, 爆炸效果由八幅图产生的爆炸效果。战机每击破一架敌机就会得 10 分,当分数增加 100 时,战机的生命就会增加一。当战机的生命减到零时,就会跳到游戏结束的图片。 2. 相关技术 基类的使用在飞机大战的游戏中用到了很多基类, 例如 MyPlane 、 Bomb 等等, 这样使得游戏的实现更加规范,有效性。通过主函数的调用,实现了很多功能。 双循环在设计战机导弹炸掉敌机时, 因为敌机是不固定的, 导弹与所有的敌机都有可能发生区域重合,因此加入双循环。 3. 总体设计与详细设计 系统模块划分飞机大战游戏主要模块可以说是有几个重要的类组成的。首先是老师给出的 CGameObject 类,以及在其派生下的 BOMB,BALL,ENEMY,BOSS,MYPLANE 等等。如图: 主要功能模块主要功能是在飞机大战 1 View 类中, OnTimer 函数中实现, 将各个类调用, 随机产生敌机,子弹的输出,爆炸的实现等等。它的实现图可以如下实现: 信息科学与工程学院软件实践实训报告 4 4. 编码实现 飞机大战 //飞机大战 :C飞机大战 View 类的实现// #include "" #include "" #include "飞机大战 " #include "飞机大战 " #ment ( lib , "" ) #include "" #ifdef _DEBUG #define new DEBUG_NEW #endif //C飞机大战 View IMPLEMENT_DYNCREATE(C 飞机大战 View, CView) BEGIN_MESSAGE_MAP(C 飞机大战 View, CView) //标准打印命令 MAND(ID_FILE_PRINT, &CView::OnFilePrint) MAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint) 信息科学与工程学院软件实践实训报告 5 MAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview) ON_WM_TIMER() ON_WM_CREATE() ON_WM_KEYDOWN() ON_WM_KEYUP() END_MESSAGE_MAP() //C飞机大战 View 构造/析构 C飞机大战 View::C 飞机大战 View() { // TODO: 在此处添加构造代码}C飞机大战 View::~C 飞机大战 View() {} BOOL C飞机大战 View::PreCreateWindow(CREATESTRUCT& cs) { // TODO: 在此处通过修改// CREATESTRUCT cs来修改窗口类或样式 return CView::PreCreateWindow(cs); } //C飞机大战 View 绘制 void C飞机大战 View::OnDraw(CDC* pDC) {C飞机大战 Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return ; // TODO: 在此处为本机数据添加绘制代码//CFont font; //( // 22, // nHeight // 0, // nWidth // 0, // nEscapement // 0, // nOrientation // FW_NORMAL,
飞机大战 来自淘豆网m.daumloan.com转载请标明出处.