飞机大战游戏 模块设计报告

更新时间:2023-12-29 12:40:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

飞机大战游戏 模块设计报告

文件状态: [ ] 草稿 [√] 正式发布 [ ] 正在修改

文件标识: QRSX-004-DOC-AS 当前版本: 1.0 作 者: 青软实训 完成日期: 青岛软件园软件人力资源服务有限公司 实训服务中心

3D版黑白棋,《模块设计报告》

版 本 历 史

版本/状态 1.0/发布

作者 张玉星 参与者 起止日期 备注

? 青软实训,2008

Page 2 of 14

3D版黑白棋,《模块设计报告》

目 录

0. 文档介绍 ............................................................................................................................ 4 0.1 文档目的 ....................................................................................................................... 4 0.2 文档范围 ....................................................................................................................... 4 0.3 读者对象 ....................................................................................................................... 4 0.4 参考文献 ....................................................................................................................... 4 0.5 术语与缩写解释 ............................................................................................................ 4 1. 模块命名规则 ..................................................................................................................... 5 2. 模块汇总 ............................................................................................................................ 5 2.1 模块汇总表 ................................................................................................................... 5 2.2 UML活动图 .................................................................................................................. 6 2.3类体系 ............................................................................................................................ 6 3. 游戏规则子系统 ................................................................................................................. 6 3.1 人工智能 ....................................................................................................................... 6 4. 3游戏对象子系统 ............................................................................................................... 7 4.1 应用程序对象 ............................................................................................................... 7 4.2 游戏对象 ....................................................................................................................... 8 4.3 战机对象 ....................................................................................................................... 9 4.4 敌机对象 ..................................................................................................................... 10 4.5 导弹对象 ..................................................................................................................... 11 4.6 炸弹对象 ..................................................................................................................... 12 4.7 爆炸对象 ..................................................................................................................... 13 4.4 文字对象 ..................................................................................................................... 14

? 青软实训,2008

Page 3 of 14

3D版黑白棋,《模块设计报告》

0. 文档介绍

0.1 文档目的

指导模块编码人员编码。

0.2 文档范围

模块功能介绍及实现要求

0.3 读者对象

模块编码人员

0.4 参考文献

0.5 术语与缩写解释

缩写、术语 解 释

? 青软实训,2008

Page 4 of 14

3D版黑白棋,《模块设计报告》

1. 模块命名规则

2. 模块汇总

2.1 模块汇总表

游戏规则子系统 模块名称 人工智能 游戏子系统 模块名称 应用程序对象 功能简述 人机对战规则的实现 功能简述 游戏程序的加载、游戏对象的绘制、游戏规则的调用、玩家的键盘事件获取 各个游戏对象的抽象父类 战机类 敌机类 导弹类 炸弹类 爆炸类 文字类 游戏对象 战机对象 敌机对象 导弹对象 炸弹对象 爆炸对象 文字对象

? 青软实训,2008

Page 5 of 14

3D版黑白棋,《模块设计报告》

2.2 UML活动图

启动程序初始化游戏对象游戏初始化初始化绘图环境游戏是否结束绘制游戏对象碰撞运算积分判断

2.3类体系

游戏对象+Draw() : bool敌机战机导弹炸弹爆炸效果文字提示

3. 游戏规则子系统

3.1 人工智能

模块名称 功能描述 接口与属性 数据结构 与算法 ? 青软实训,2008

人工智能 人机对战规则规则 void AI( void ); //随机产生敌机 //检测四个方向键,移动战机 Page 6 of 14

3D版黑白棋,《模块设计报告》

//产生战机导弹、炸弹 //碰撞检测 补充说明 4. 3游戏对象子系统

4.1 应用程序对象

模块名称 功能描述 应用程序对象 游戏程序的加载、游戏对象的绘制、游戏规则的调用、玩家的键盘事件获取 CPlaneGame g_Game; 接口与属性 数据结构 与算法 class CPlaneGame { public: protected: protected: void AI(); Page 7 of 14

//刷新游戏的帧画面 void UpdateFrame(CDC* pMemDC); //初始化游戏 BOOL InitGame(); //结束游戏 void StopGame(); //内存DC CDC* m_pMemDC; //设备DC CClientDC* m_pDC; //内存位图 CBitmap* m_pMemBitmap; virtual void OnDraw(CDC* pDC); // 重写以绘制该视图 ? 青软实训,2008

3D版黑白棋,《模块设计报告》

CObList m_ObjList[4]; //用链表来管理游戏对象 //获得键的状态1->down int GetKey(int nVirtKey) { } CMyPlane* m_pMe; return (GetKeyState(nVirtKey) & 0x8000)? 1 : 0; }; 补充说明

4.2 游戏对象

模块名称 功能描述 接口与属性 数据结构 与算法 游戏对象 各个游戏对象的抽象父类 //游戏对象的父类 class CGameObject : public CObject { public: //获得左上角坐标 CPoint GetPoint() { } return m_ptPos; //获得矩形区域 virtual CRect GetRect()=0; CGameObject(int x=0,int y=0); virtual ~CGameObject(); //绘制对象 virtual BOOL Draw(CDC* pDC,BOOL bPause)=0; ? 青软实训,2008

Page 8 of 14

3D版黑白棋,《模块设计报告》

protected: //加载图像 static BOOL LoadImage(CImageList& imgList,UINT bmpID,COLORREF crMask,int cx,int cy,int nInitial); protected: //物体的位置 CPoint m_ptPos; }; 补充说明

4.3 战机对象

模块名称 功能描述 接口与属性 数据结构 与算法 战机对象 战机类,战机图像加载、贴图、位置存储 CMyPlane* m_pMe; class CMyPlane :public CGameObject { public: void SetVerMotion(int nMotion) { m_nVerMotion = nMotion; Page 9 of 14

void SetHorMotion(int nMotion) { } int GetHorMotion() const { } return m_nHorMotion; m_nHorMotion = nMotion; static BOOL LoadImage(); BOOL Draw(CDC* pDC,BOOL bPause); CMyPlane(void); ~CMyPlane(void); ? 青软实训,2008

3D版黑白棋,《模块设计报告》

CRect GetRect() { return } int GetVerMotion() const { } return m_nVerMotion; CRect(m_ptPos,CPoint(m_ptPos.x+PLANE_WIDTH,m_ptPos.y+PLANE_HEIGHT)); public: static const int PLANE_WIDTH=50; static const int PLANE_HEIGHT=60; //是否可以开火发射导弹 BOOL Fired(); } private: }; 补充说明 static CImageList m_Images; int m_nHorMotion;//飞机水平运行方向0->静止,1->右 -1->左 int m_nVerMotion;//飞机垂直运行方向0->静止,1->上 -1->下 int m_nWait;//发射延时

4.4 敌机对象

模块名称 功能描述 接口与属性 数据结构 与算法 敌机对象 图像加载、贴图、位置存储 new CEnemy class CEnemy :public CGameObject { public: CEnemy(void); ~CEnemy(void); ? 青软实训,2008

Page 10 of 14

3D版黑白棋,《模块设计报告》

CRect GetRect() { return static BOOL LoadImage(); BOOL Draw(CDC* pDC,BOOL bPause); CRect(m_ptPos,CPoint(m_ptPos.x+ENEMY_HEIGHT,m_ptPos.y+ENEMY_HEIGHT)); int GetMontion() const { } //是否可以开火发射子弹 BOOL Fired(); return m_nMotion; } private: }; 补充说明 static const int ENEMY_HEIGHT = 35; static CImageList m_Images; int m_nMotion;//方向 1->向下 0->停止 -1->向上 //图像索引 int m_nImgIndex; //速度 int m_V; int m_nWait;//发射延时 4.5 导弹对象

模块名称 功能描述 接口与属性 数据结构 与算法 导弹对象 图像加载、贴图、位置存储 new CBomb class CBomb : { public: CBomb(int x,int y); ~CBomb(void); Page 11 of 14

public CGameObject ? 青软实训,2008

3D版黑白棋,《模块设计报告》

CRect GetRect() { return static BOOL LoadImage(); BOOL Draw(CDC* pDC,BOOL bPause); CRect(m_ptPos,CPoint(m_ptPos.x+10,m_ptPos.y+BOMB_HEIGHT)); } private: }; 补充说明 static const int BOMB_HEIGHT = 20; static CImageList m_Images; 4.6 炸弹对象

模块名称 功能描述 接口与属性 数据结构 与算法 炸弹对象 图像加载、贴图、位置存储 new CBall; class CBall :public CGameObject { public: CRect GetRect() { return static BOOL LoadImage(); BOOL Draw(CDC* pDC,BOOL bPause); CBall(int x,int y,int nMontion); ~CBall(void); CRect(m_ptPos,CPoint(m_ptPos.x+BALL_HEIGHT,m_ptPos.y+BALL_HEIGHT)); } private: ? 青软实训,2008

static const int BALL_HEIGHT=8; Page 12 of 14

3D版黑白棋,《模块设计报告》

}; 补充说明 static CImageList m_Images; int m_nMotion;

4.7 爆炸对象

模块名称 功能描述 接口与属性 数据结构 与算法 爆炸对象 图像加载、贴图、位置存储 new CExplosion; class CExplosion :public CGameObject { public: CRect GetRect() { return static BOOL LoadImage(); BOOL Draw(CDC* pDC,BOOL bPause); CExplosion(int x,int y); ~CExplosion(void); CRect(m_ptPos,CPoint(m_ptPos.x+EXPLOSION_WIDTH,m_ptPos.y+EXPLOSION_WIDTH)); } private: //炸弹的图片列表 static CImageList m_Images; //图像索引的步进计数 int m_nProcess; public: }; 补充说明 static const int EXPLOSION_WIDTH = 66;

? 青软实训,2008

Page 13 of 14

3D版黑白棋,《模块设计报告》

4.4 文字对象

模块名称 功能描述 接口与属性 数据结构 与算法 文字对象 图像加载、贴图、位置存储 new CText; class CText :public CGameObject { public: CRect GetRect() { } return CRect(m_ptPos,CPoint(m_ptPos.x,m_ptPos.y)); BOOL Draw(CDC* pDC,BOOL bPause); CText(int x,int y); ~CText(void); }; 补充说明

? 青软实训,2008

Page 14 of 14

本文来源:https://www.bwwdw.com/article/76qx.html

Top