雷电游戏概要设计说明书.docx
- 文档编号:11061450
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:27
- 大小:84KB
雷电游戏概要设计说明书.docx
《雷电游戏概要设计说明书.docx》由会员分享,可在线阅读,更多相关《雷电游戏概要设计说明书.docx(27页珍藏版)》请在冰豆网上搜索。
雷电游戏概要设计说明书
概要设计说明书
Version1.2
2012/7/4
编写人员:
杨敬博
刘辉
1.引言
1.1编写目的
在分析《雷电项目需求分析说明书》的基础上,我们对该系统做了概要设计,主要是基于以下目的编写此说明书:
1.对系统概要设计的阶段任务成果形成文档,以便阶段验收、评审,最终的阶段验收。
2.对需求阶段的文档再次确认过程,对前一阶段的需求不充分的地方或者有错误的地方进行修改。
3.明确整个系统的功能框架和数据结构,为下一阶段的详细设计、编码、测试提供参考依据。
4.明确编码规范和命名规范,统一程序界面。
预期读者:
详细设计人员、概要设计测试小组、指导老师、验收老师。
1.2背景
系统名称:
“雷电”游戏
任务提出者:
手机策划人员
开发者:
“雷电”游戏项目组
用户:
手机用户
运行该软件机器:
支持java扩展的手机
1.3定义
飞机精灵:
飞机可以作为一个游戏精灵,在界面中独立显示。
可以用来作为判断飞机间、飞机与子弹间是否相撞,并产生相应的事件。
可以被己方飞机和地方飞机共同继承。
子弹精灵:
子弹作为一个游戏精灵,在界面中独立显示。
可以用来同飞机精灵进行碰撞检测,并监听相关状态。
坐标系:
以左上角那点为(0,0),向右则x递增,向下则y递增
背景图层:
游戏过程中的背景(星空)作为一个图层来处理,在界面上独立显示。
可以用来产生图轴卷动的效果。
炮塔图层:
炮塔作为另一个图层,在界面上独立显示。
可以同背景图层等速或者不同速度。
可以发射子弹精灵,并且可以同己方飞机碰撞检测,并产生相关处理。
礼物精灵:
礼物作为一个图层,在界面中单独显示。
主要用来同己方飞机碰撞检测,判断己方飞机是否吃掉了相应的礼物。
1.4参考资料
[1]StephenR.Schach著.《Object-OrientedClassicalSoftwareEngineering》.第七版.机械工业出版社.
[2]肖刚著.《实用软件文档写作》.2005年2月第一版.清华大学出版社.
[3]《中华人民共和国国家标准》—《计算机软件需求说明编制指南》—
GB8567-88
2.总体设计
2.1需求规定
2.1.1输入输出
输入:
设置、级别、操作选择
输出:
时间、分数、剩余血量、生命值、大招数、游戏记录
2.1.2性能要求
本游戏在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。
游戏主界面应该力求美观,赏心悦目,富有动感。
游戏控制模块应做到简单易懂、操作方便,而且准确率高,不易出错。
2.2运行环境
操作系统:
MicrosoftWindowsXP
程序语言:
Java2
开发包:
Java(TM)2StandardEdition(6.0)
JavaDevelopKit1.6(jdk-6u21-windows-i586)
SunMicro.J2ME
WirelessToolKit2.5(sun_java_wireless_toolkit-2.5.2_01-win)
IDE:
Eclipse3.5(eclipse-SDK-3.5.2-win32)
Eclipseme(eclipseme.feature_1.7.9_site)(Eclipse中的J2ME插件)
2.3基本设计概念
程序的关键在于表示各种对象的活动并且进行对象间的碰撞检测,产生各种事件,并对相关事件进行适当的处理。
碰撞检测可以通过精灵类和图层类自带的碰撞检测函数实现监听。
各个对象碰撞后处理如下:
己方飞机
敌方飞机
子弹
礼物
炮塔
己方飞机
飞机爆炸
根据所中的子弹威力(power)属性,己方飞机扣除相对应的血量
根据礼物的类型(type)属性,为飞机修改相应的属性值
飞机爆炸
敌方飞机
飞机爆炸
根据所中的子弹威力(power)属性,敌方飞机扣除相对应的血量
子弹
子弹消失
子弹消失
礼物
礼物消失
炮塔
炮塔爆炸
根据所中的子弹威力(power)属性,炮塔扣除相对应的血量
Tab2-3-1
2.4处理流程
Chart2-4-1
2.5系统结构
系统各模块整体关系如下:
Chart2-5-1
各模块详细信息如下:
Chart2-5-2
Chart2-5-3
Chart2-5-4
系统中类图如下:
Chart2-5-5
Chart2-5-6
Chart2-5-7
Chart2-5-8
Chart2-5-9
Chart2-5-10
Chart2-5-11
系统中各类的详细描述及注释:
1.Controller//游戏总控及游戏过程中背景画布类:
+loadPlayer():
void//加载玩家信息到系统
+savePlayer(Playerp):
void//保存玩家信息到数据系统
+showRank():
void//显示积分排名最高的三个玩家
+showMenu():
void//显示游戏主菜单
+showHelp():
void//显示帮助界面
+exit():
void//退出游戏
+showPicture(Picturep):
boolean//在特定事件产生时加载图像
+turnoffSound(Sounds):
boolean//关闭指定声效
+turnOnSound(Sounds):
boolean//游戏过程中关闭
+controlBankSound(Booleanon):
void//关闭背景音乐
+loadPlane(Planep):
void//加载指定种类的飞机到场景
+orientPlane(Planep):
String//定位指定飞机
+destructPlane(Planep):
void//销毁指定飞机
+showCollidePlane():
void//显示飞机爆炸场景
+showGetGift():
void//飞机获得礼物的场景
+loadTowel():
void//加载塔楼到系统
+destructTowel():
void//销毁塔楼
2.BackGround//背景类:
属性:
-map:
Image;//图片
-background:
TiledLayer;//背景
-gra:
Graphics;//画笔
-layerManag:
LayerManager;//图层管理
-run:
trueboolean;//进程运行
-inty_site:
int;//y坐标
-speed:
staticfinalint//速度
方法:
+MyGameCanvas(Imageimg)//构造函数
+run()//运行背景
+setRun(booleanisRun)//设置进程
+getBackground():
TiledLayer//得到背景图层
3.RaidenGUI//初始登录界面:
属性:
-START_NEW:
staticfinalint//标识选项类型的静态常量
-CONTINUE:
staticfinalbyte//标识选项类型的静态常量
-RANK:
staticfinalbyte//标识选项类型的静态常量
-SETTING:
staticfinalbyte//标识选项类型的静态常量
-HELP:
staticfinalbyte//标识选项类型的静态常量
-QUIT:
staticfinalbyte//标识选项类型的静态常量
-menuIndex:
int//选项索引
-startImg:
Image//开始游戏被选中画面
-continueImg:
Image//继续游戏被选中画面
-rankingImg:
Image//最高分数被选中画面
-settingImg:
Image//设置被选中画面
-helpImg:
Image//帮助被选中画面
-quitImg:
Image//退出被选中画面
-thread:
Thread//控制用线程
-graphics:
Graphics//画笔
方法:
+RaidenGUI()//构造函数
+scaleImage(Imagesrc,intdstW,intdstH):
Image//图片处理方法
+drawMenu()//画菜单
+draw()//调用画菜单
-sleep(longi)//休眠控制
+run()//线程
+keyPressed(intkey)//按键事件
4.Plane//飞机(父类):
属性:
-isAlive:
boolean//是否存活
-liveCounter:
int//生命数目
-blood:
int//血量
方法:
+draw(Graphicsg)//画图
+setCanvasSize(intCanvasWidth,intCanvasHeight)//设置画布大小
+setAlive(booleanisAlive)//设置生命
+isAlive():
boolean//返回是否有生命
+getLiveCounter():
int//获得生命数目
+setLiveCounter(liveCounterp):
void//设置生命数
+setBlood(intblood):
void//设置血量
+getBlood():
int//获得血量
+tick(intpx)//随着时间,运行
+init()//初始化
5.Player//己方飞机
属性:
-isSpeedUp:
boolean//是否加速
-dazhao:
int//大招数目
方法:
+move(intdirection)//移动
+speedup()//加速
+tick()//随着时间增加,运行
+drawDaZhao(Graphicsg):
void//画放大招的图
+setDaZhao(inti):
void//设置大招数
+getDaZhao():
int//获得大招数
6.Enemy//敌方飞机
属性:
-bulletType:
int//子弹类型
-attackValue:
int//攻击强度
-attackFrequency:
int//攻击频率
方法:
+setBulletType(intbullet):
void//设置子弹类型
+setAttackValue(intvalue):
void//设置攻击强度
+setAttackFre(intattackFre):
void//设置子弹频度
7.Boss
属性:
-bulletType:
int//子弹类型
-attackValue:
int//攻击强度
-attackFrequency:
int//攻击频率
方法:
+move(intdirection)//移动
+tick()//随着时间增加,运行
+setBulletType(intbullet):
void//设置子弹类型
+setAttackValue(intvalue):
void//设置攻击强度
+setAttackFre(intattackFre):
void//设置子弹频度
8.Bullet//子弹类
属性:
-bulletImage:
Image//子弹初始图片
-x:
int//图片x坐标
-y:
int//图片y坐标
-imageHeight:
int//图片高度
-imageWidth:
int//图片宽度
-isDisplay:
boolean//子弹是否可见
-bulletType:
int//子弹类型
-bulletStrong:
boolean//子弹攻击强度
方法:
+draw(Graphicsg)//绘制子弹方法
+move(inttype)//子弹移动方法
+setX(intx)//设置x坐标
+setY(inty)//设置y坐标
+getImageWidth()//获得子弹图片宽度
+getImageHeight()//获得子弹图片高度
+setType(inttype)//设置子弹类型
+setStrong(booleanstrong)//设置子弹强度
+getType()//获得子弹类型
+getStrong()//获得子弹强度
9.Battery//炮塔类:
属性:
-blood:
int//血量
-x:
int//横坐标
-y:
int//纵坐标
-imageWidth:
int//炮塔图片宽度
-imageHidth:
int//炮塔图片高度
-batteryImage:
Imae//炮塔图片
-bulletType:
int//炮塔发射的子弹类型
-direction:
int//炮塔炮管的方向
方法:
+initial():
void//初始化
+setBlood(intblood):
void//设置炮塔血量
+getBlood():
int//得到当前炮塔血量
+setX(intx):
void//设置炮塔的横坐标
+setY(inty):
void//设置炮塔的纵坐标
+getX():
int//得到炮塔的横坐标
+getY():
int//得到炮塔的纵坐标
+getImageWidth():
int//得到图片的宽度
+getImaeHidth():
int//得到图片的高度
+setDirection(intdir):
void//设置炮口方向
+getDirection():
int//得到炮口方向
+setBulletType(inttype):
void//设置子弹类型
+getBulletType():
int//得到子弹类型
10.Gift//礼物类(父类):
属性:
-x:
int//礼物横坐标
-y:
int//礼物纵坐标
方法:
+getX()//获取礼物横坐标
+setX(int)//设置礼物横坐标
+getY()//获取礼物纵坐标
+setY(int)//设置礼物纵坐标
11.BulletType//子弹类型:
属性:
-type:
int//子弹类型
方法:
+getType()//获取子弹类型
+setType(int)//设置子弹类型
12.BulletIntensity//子弹强度:
属性:
-intensity:
int//子弹强度
方法:
+getIntensity()//获取子弹强度
+setIntensity(int)//设置子弹强度
13.Life//生命值:
属性:
-quantity:
int//生命值数量
方法:
+addQuantity(int)//生命值加一
+getQuantity()//获取生命值数量
+setQuantity(int)//设置生命值数量
14.CLS//大招清屏:
属性:
-quantity:
int//大招数量
方法:
+addQuantity(int)//大招数量加一
+getQuantity()//获取大招数量
+setQuantity(int)//设置大招数量
15.Protect//保护状态(无敌状态):
属性:
-time:
int//保护时间
方法:
+cutTime(int)//减保护时间
+getTime()//获取保护时间
+setTime(int)//设置保护时间
+drawProtect(Graphicsg)//画保护状态时的飞机图
16.Player//玩家类:
属性:
-name:
String//玩家姓名
-score:
int//玩家分数
-rank:
int//关数
-startTime:
Date//玩家进入游戏时间
-endTime:
Date//玩家退出游戏时间
-lastTime:
Date//游戏持续时间
方法:
+getName():
String//获得玩家姓名
+getScore():
int//获得玩家分数
+getRank():
int//获得玩家游戏关数
+getstartTime:
Date//玩家进入游戏时间
+getendTime:
Date//玩家退出游戏时间
+getlastTime:
Date//游戏持续时间
+setName():
String//设置玩家姓名
+setScore():
int//设置玩家分数
+setRank():
int//设置玩家游戏关数
+setstartTime:
Date//设置玩家进入游戏时间
+setendTime:
Date//设置玩家退出游戏时间
2.6功能需求与程序的关系
总控制类
绘制菜单类
绘制游戏界面类
己方飞机类
敌方飞机类
子弹类
礼物类
炮塔类
玩家类
背景类
菜
单
界
面
继续未完的游戏
√
√
√
创建新游戏
√
√
√
√
声音
√
√
游戏排名
√
√
√
帮助
√
√
退出游戏
√
√
√
游
戏
过
程
中
暂停游戏
√
√
√
继续游戏
√
√
√
放大招
√
√
√
√
玩家吃生命宝物
√
√
√
√
玩家吃放大招宝物
√
√
√
√
玩家吃子弹强度宝物
√
√
√
√
√
吃子弹变换宝物
√
√
√
√
√
吃无敌状态宝物
√
√
√
√
游戏帮助
√
√
声音设置
√
√
玩家保存游戏
√
√
√
√
玩家返回游戏
√
√
√
直接退出游戏
√
√
Tab2-6-1
1.游戏界面主框架主要包括游戏图形主界面、开始界面。
1)开始界面包括:
继续游戏、开始新游戏、声音设置、最高记录、帮助、退出游戏。
2)游戏图形主界面主要包括:
己方飞机、敌方飞机、子弹、“礼物”、炮塔等。
2.与程序的关系:
1)绘制菜单类画出继续游戏、开始新游戏、声音设置、最高记录、帮助、退出游戏等游戏进入时主菜单中应该显示的各条目。
用户在该画布下按下按钮,总控制类判断逻辑或响应事件,向各实体类发出命令,分别执行。
2)绘制游戏界面类画出己方飞机、敌方飞机、子弹、“礼物”、炮塔等游戏过程中显示给用户的各对象的画布。
用户在该画布下按下按钮,总控制类判断逻辑或响应事件,向各实体类发出命令,分别执行。
2.7人工处理过程
由用户选择游戏控制类别:
开始新游戏、继续上次游戏、查询最高记录、帮助和退出游戏。
游戏进行中用户选择有效方向键操作己方飞机并可随时使游戏暂停。
3.接口设计
3.1用户接口
由于此程序属于小型手机游戏,不提供二次开发,故不提供用户接口。
3.2外部接口
由于此程序不进行IO等涉及手机硬件系统的操作,故无外部接口。
3.3内部接口
1.PrivateVoidDraw():
系统中绘制游戏界面画布模块。
负责将所有的对象加入到游戏的用户界面中。
所有对象为画布提供了绘制相应对象的接口。
提供该接口的类:
Plane、Bullet、Battery、Gift
2.PrivatevoidsetBlood(intblood)/intgetBlood():
系统中的飞机(己方和地方)、炮塔等有生命的对象都有血量属性。
该接口为控制类提供修改/获得血量的接口。
提供该接口的类:
Plane、Battery
3.PrivatevoidsetX(intx)/intgetX()/setY(intx)/intgetY():
系统中的飞机(己方和地方)、炮塔、子弹对象需要在画布中进行定位,因此需要控制类对其坐标进行设置和更改。
该接口为控制类提供了设置/获得对象位置的接口。
提供该接口的类:
Bullet、Battery、Gift
4.PrivatevoidsetBulletType(inttype):
设置可以发出子弹的对象的子弹类型。
该接口为控制类提供子弹类型设置的接口。
提供该接口的类:
Plane、Battery
4.运行设计
4.1运行模块组合
进入游戏的初始菜单界面:
1.运行游戏,“总控制类”切换界面使“绘制菜单类”绘制的画布显示到主屏幕。
2.选择“继续游戏”,总控制类响应事件,发命令给“绘制游戏界面类”,进行相关的数据导入及游戏初始化,开始游戏。
3.选择“新游戏”,总控制类响应事件,发命令给“绘制游戏界面类”,进行游戏初始化,开始游戏。
4.选择“声音”,“绘制游戏界面类”响应事件,切换界面,显示声音开关设置界面,在该页面内进行声音的打开与关闭设置。
5.选择“游戏排名”,“绘制游戏界面类”响应事件,切换界面,显示游戏排名界面,在该页面内显示游戏历史中最好前三名的成绩及名字。
6.选择“帮助”,“绘制游戏界面类”响应事件,切换界面,显示帮助界面,在该页面内显示游戏的操作指南。
7.选择“退出游戏”,总控制类响应事件,退出游戏。
游戏过程中:
1.点击游戏界面中的右软键“暂停”按钮,“绘制游戏界面类”响应事件,游戏暂停,并使右软键处的按钮内容换为“继续”。
再次按右软键,“绘制游戏界面类”响应事件,游戏继续进行,并使右软键处的按钮内容换位“继续”。
2.点击游戏界面中的左软键“选项”按钮,“绘制游戏界面类”响应事件,暂停游戏,界面切换到选项页面,进行“游戏帮助”、“声音设置”、“退出”、“返回游戏”选择。
在此界面中:
1)选择“游戏帮助”,“绘制游戏界面类”响应事件,切换界面,显示帮助界面,在该页面内显示游戏的操作指南。
2)选择“声音设置”,“绘制游戏界面类”响应事件,切换界面,显示声音开关设置界面,在该页面内进行声音的打开与关闭设置。
3)选择“退出”,“绘制游戏界面类”响应事件,切换界面,显示“是否保存界面”,在该页面内进行保存与否的设置。
随后返回主菜单。
4)选择“返回游戏”,“绘制游戏界面类”响应事件,切换界面,返回继续游戏。
3.点击“开火键”,“绘制游戏界面类”响应事件,调用“大招类”,产生大招爆炸效果。
4.“绘制游戏界面类”监控界面中的各种碰撞事件(详见Tab2-3-1),并调用相关实体类进行处理。
4.2运行控制
用户进入开始界面后控制上下和确定键选择游戏控制类别:
开始新游戏、继续上次游戏、查询最
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 雷电 游戏 概要 设计 说明书