飞机大战游戏_模块设计报告 本文关键词:模块,大战,飞机,报告,设计
飞机大战游戏_模块设计报告 本文简介:飞机大战游戏模块设计报告文件标识:QRSX-004-DOC-AS当前版本:1.0作者:青软实训文件状态:[]草稿[√]正式发布[]正在修改完成日期:青岛软件园软件人力资源服务有限公司实训服务中心3D版黑白棋,《模块设计报告》?青软实训,2008Page2of14版本历史版本/状态作者参与者起止日期备
飞机大战游戏_模块设计报告 本文内容:
飞机大战游戏
模块设计报告
文件标识:
QRSX-004-DOC-AS
当前版本:1.0
作
者:青软实训
文件状态:
[
]
草稿
[√]
正式发布
[
]
正在修改
完成日期:
青岛软件园软件人力资源服务有限公司
实训服务中心
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
2
of
14
版
本
历
史
版本/状态作者参与者起止日期备注
1.0/发布张玉星
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
3
of
14
目目目
录录录
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
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
4
of
14
0.
文档介绍文档介绍
0.1
文档目的文档目的
指导模块编码人员编码。
0.2
文档范围文档范围
模块功能介绍及实现要求
0.3
读者对象读者对象
模块编码人员
0.4
参考文献参考文献
0.5
术语与缩写解释术语与缩写解释
缩写、术语缩写、术语解解
释释
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
5
of
14
1.
模块命名规则模块命名规则
2.
模块汇总模块汇总
2.1
模块汇总表模块汇总表
游戏规则子系统游戏规则子系统
模块名称功能简述
人工智能人机对战规则的实现
游戏子系统游戏子系统
模块名称功能简述
应用程序对象游戏程序的加载、游戏对象的绘制、游戏规则的调用、玩家的键盘事
件获取
游戏对象各个游戏对象的抽象父类
战机对象战机类
敌机对象敌机类
导弹对象导弹类
炸弹对象炸弹类
爆炸对象爆炸类
文字对象文字类
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
6
of
14
2.2
UML
活动图活动图
启动程序
游戏初始化
初始化游戏对象
初始化绘图环境
绘制游戏对象
碰撞运算
积分判断
游戏是否结束
2.3
类体系类体系
+Draw()
:
bool
游游戏戏对对象象
敌敌机机战战机机导导弹弹
炸炸弹弹爆爆炸炸效效果果文文字字提提示示
3.
游戏规则子系统游戏规则子系统
3.1
人工智能人工智能
模块名称人工智能
功能描述人机对战规则规则
接口与属性void
AI(
void
);
数据结构
与算法
//随机产生敌机
//检测四个方向键,移动战机
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
7
of
14
//产生战机导弹、炸弹
//碰撞检测
补充说明
4.
3
游戏对象子系统游戏对象子系统
4.1
应用程序对象应用程序对象
模块名称应用程序对象
功能描述游戏程序的加载、游戏对象的绘制、游戏规则的调用、玩家的键盘事件获
取
接口与属性
CPlaneGame
g_Game;
数据结构
与算法
class
CPlaneGame
{
public:
virtual
void
OnDraw(CDC*
pDC);
//
重写以绘制该视图重写以绘制该视图
protected:
//内存内存DC
CDC*
m_pMemDC;
//设备设备DC
CClientDC*
m_pDC;
//内存位图内存位图
CBitmap*
m_pMemBitmap;
protected:
//初始化游戏初始化游戏
BOOL
InitGame();
//结束游戏结束游戏
void
StopGame();
//刷新游戏的帧画面刷新游戏的帧画面
void
UpdateFrame(CDC*
pMemDC);
void
AI();
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
8
of
14
//获得键的状态获得键的状态1-down
int
GetKey(int
nVirtKey)
{
return
(GetKeyState(nVirtKey)
}
CMyPlane*
m_pMe;
CObList
m_ObjList[4];
//用链表来管理游戏对象
};
补充说明
4.2
游戏对象游戏对象
模块名称游戏对象
功能描述各个游戏对象的抽象父类
接口与属性
数据结构
与算法
//游戏对象的父类
class
CGameObject
:
public
CObject
{
public:
CGameObject(int
x=0,int
y=0);
virtual
~CGameObject();
//绘制对象
virtual
BOOL
Draw(CDC*
pDC,BOOL
bPause)=0;
//获得矩形区域
virtual
CRect
GetRect()=0;
//获得左上角坐标
CPoint
GetPoint()
{
return
m_ptPos;
}
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
9
of
14
protected:
//加载图像
static
BOOL
LoadImage(CImageList
protected:
//物体的位置
CPoint
m_ptPos;
};
补充说明
4.3
战机对象战机对象
模块名称战机对象
功能描述战机类,战机图像加载、贴图、位置存储
接口与属性CMyPlane*
m_pMe;
数据结构
与算法
class
CMyPlane
:public
CGameObject
{
public:
CMyPlane(void);
~CMyPlane(void);
BOOL
Draw(CDC*
pDC,BOOL
bPause);
static
BOOL
LoadImage();
void
SetHorMotion(int
nMotion)
{
m_nHorMotion
=
nMotion;
}
int
GetHorMotion()
const
{
return
m_nHorMotion;
}
void
SetVerMotion(int
nMotion)
{
m_nVerMotion
=
nMotion;
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
10
of
14
}
int
GetVerMotion()
const
{
return
m_nVerMotion;
}
CRect
GetRect()
{
return
CRect(m_ptPos,CPoint(m_ptPos.x+PLANE_WIDTH,m_ptPos.y+PLANE_HEIGHT));
}
//是否可以开火发射导弹
BOOL
Fired();
public:
static
const
int
PLANE_WIDTH=50;
static
const
int
PLANE_HEIGHT=60;
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);
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
11
of
14
BOOL
Draw(CDC*
pDC,BOOL
bPause);
static
BOOL
LoadImage();
CRect
GetRect()
{
return
CRect(m_ptPos,CPoint(m_ptPos.x+ENEMY_HEIGHT,m_ptPos.y+ENEMY_HEIGHT));
}
int
GetMontion()
const
{
return
m_nMotion;
}
//是否可以开火发射子弹
BOOL
Fired();
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
CGameObject
{
public:
CBomb(int
x,int
y);
~CBomb(void);
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
12
of
14
BOOL
Draw(CDC*
pDC,BOOL
bPause);
static
BOOL
LoadImage();
CRect
GetRect()
{
return
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:
CBall(int
x,int
y,int
nMontion);
~CBall(void);
BOOL
Draw(CDC*
pDC,BOOL
bPause);
static
BOOL
LoadImage();
CRect
GetRect()
{
return
CRect(m_ptPos,CPoint(m_ptPos.x+BALL_HEIGHT,m_ptPos.y+BALL_HEIGHT));
}
private:
static
const
int
BALL_HEIGHT=8;
static
CImageList
m_Images;
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
13
of
14
int
m_nMotion;
};
补充说明
4.7
爆炸对象爆炸对象
模块名称爆炸对象
功能描述图像加载、贴图、位置存储
接口与属性new
CExplosion;
数据结构
与算法
class
CExplosion
:public
CGameObject
{
public:
CExplosion(int
x,int
y);
~CExplosion(void);
BOOL
Draw(CDC*
pDC,BOOL
bPause);
static
BOOL
LoadImage();
CRect
GetRect()
{
return
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;
};
补充说明
3D
版黑白棋,
《模块设计报告》
?
青软实训,2008Page
14
of
14
4.4
文字对象文字对象
模块名称文字对象
功能描述图像加载、贴图、位置存储
接口与属性new
CText;
数据结构
与算法
class
CText
:public
CGameObject
{
public:
CText(int
x,int
y);
~CText(void);
BOOL
Draw(CDC*
pDC,BOOL
bPause);
CRect
GetRect()
{
return
CRect(m_ptPos,CPoint(m_ptPos.x,m_ptPos.y));
}
};
补充说明