胜利大逃亡概要设计说明书第二版Word文档格式.docx
《胜利大逃亡概要设计说明书第二版Word文档格式.docx》由会员分享,可在线阅读,更多相关《胜利大逃亡概要设计说明书第二版Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
VisualC++是一个功能强大的可视化软件开发工具。
VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。
VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。
这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。
1.4参考资料
《C程序设计(第三版)》谭浩强著清华大学出版社
2.总体设计
2.1需求规定
2.1.1功能要求:
本系统应用于银行自助管理系统。
2.1.2输入输出要求:
输入方面:
需要两种输入,新用户注册需要给系统给定的账号设置密码,以及个人信息,姓名,性别,联系方式,地址;
已注册用户需输入账号及正确的密码。
输出方面:
用户可以查询存款,取款和转账的时所记录的信息。
输出余额。
2.1.3数据管理能力要求:
这款游戏主要是在剧情模式中记录游戏的进度和在挑战模式中记录玩家成功躲避障碍物的时间。
进度是记录当前角色所处的环境,如障碍物的数目,轨迹,所处的位置等游戏现场信息。
这些可以通过RMS保存。
2.1.4故障处理要求:
软件故障:
游戏的运行过程中可能会遇到一些不可预料的BUG,如界面中有一个区域不会出现障碍物,或者是线程死锁,内存泄漏。
这些都给玩家带来不必要的麻烦,故在游戏设计,代码编写以及测试的时候都要仔细关注这些方面问题。
硬件故障:
某些硬件故障将是致命的,这些故障是本游戏所无法解决的,游戏将会退出。
2.1.5精度要求:
游戏中的各个按钮要准确映射到手机中的某个键。
2.1.6时间特性要求:
a)响应时间:
玩家运行游戏后,加载游戏可允许有一定的响应时间延迟。
游戏正常运行之后,各个界面的转换须较短时间完成。
b)更新处理时间:
游戏中任何设置的改变,须及时更新这些设置。
c)解题时间:
不能出现让玩家费解的信息。
2.1.7灵活性要求:
将代码模块化,多提供一些接口类,提高代码的可移植性。
2.2运行环境
支持java的彩屏手机,屏幕大小为240*309,内存至少为1M,不需要其他软件支持。
2.3基本概念设计与处理流程(总体工作流程图)
2.4结构(功能模块划分)
模块划分:
a、欢迎模块
利用GameCanvas类,实现开场动画的播放。
可通过软按键直接跳过动画的播放,或者等待播放完毕,自动跳过。
b、主菜单功能模块
实现V字型动画显示和选择,总控游戏功能的选择,以及接收并响应用户的输入,实现各级菜单间的切换。
主菜单上显示项:
关于我们,声音开关,开始游戏,退出和游戏指南。
c、界面显示模块
实现主界面与各个子菜单的显示。
d、游戏设置信息模块
用于记录是否有音效,以及何种游戏模式。
e、信息显示模块
实现最高分、游戏指南和关于我们的信息显示。
f、游戏总控模块
1>
Player模块
初始位置,Player的状态(携带的物品数),使用物品的方法。
响应用户控制,各种控制的方法。
两种模式共用一个类。
2>
子弹模块
共有子弹类,子弹集类,效果控制类三种类:
子弹父类:
特效的子弹和普通子弹
记录子弹的坐标,以及为了显示子弹特效而进行的坐标的变换。
普通子弹碰到防护罩后反弹,打到Boss后,时间进行相应的减少。
特效子弹碰到防护罩后消失。
飞行路线,子弹的形状。
Boss出现后的子弹跟普通子弹形状不一样,Boss出现后原来的子弹仍然存在。
实现子弹的特效显示。
3>
Boss类
随机选择各种特效子弹。
每隔若干毫秒之后放一波子弹。
4>
保护层类
防护层可以被动攻击,可反弹普通子弹对Boss进行攻击。
与Boss同时出现在屏幕中,显示的位置为随机的。
5>
音效模块
背景音乐,特效子弹的音乐。
爆炸时的音乐
6>
游戏信息记录模块
记录分数,保存暂停时游戏中的各种现场信息数据,包括Boss
的各种信息、挑战模式的最高分及剧情模式的游戏进度等。
7>
剧情显示模块
用于显示游戏运行中的剧情。
8>
模式控制模块
进行两种游戏模式的设置,并依据这些初始设置来构造游戏运行类。
2.5功能需求与程序关系
此内容用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:
主界面模块
界面显示模块
游戏设置记录模块
信息显示模块
游戏总控模块
功能需求一:
界面显示特效
√
功能需求二:
爆炸特效
功能需求三:
子弹特效
功能需求四:
音效控制
功能需求五:
游戏设置
2.6人工处理过程
游戏开始时候的菜单选择以及游戏过程中的各种游戏操作均需要用户输入,由程序进行响应。
2.7尚未解决的问题
游戏中,因为普通子弹的运行轨迹是随机的,所以在游戏运行中屏幕有可能出现子弹空白区。
游戏总控类:
GameCtrlor里只有一个方法控制游戏的总流程,物理结构庞杂,整个流程控制方法尚不是非常清楚,需进一步分析。
3.接口设计
3.1用户接口
用户可以通过键盘按键和导航键进行游戏操作。
主界面中可通过左右方向键,控制光标左右移动来选中不同的功能项,以此来选择不同的子菜单功能。
进入到各个子菜单后,主要是通过左右软按键来实现相应项的选择,或者进行主菜单与子菜单之间的切换,通过导航键进行具体菜单项的选取定位。
游戏进入具体模式运行后,用户可以通过方向键控制游戏角色的运动方向。
3.2外部接口
本游戏同外部无软件接口。
与手机存在案件与案件映射方面的接口。
3.3内部接口
a)主界面模块:
调用游戏总控模块、界面显示模块、信息显示模块、游戏设置信息模块。
b)游戏总控模块:
调用游戏设置信息模块、信息显示模块、子弹特效类、音效模块、游戏信息记录模块、模式控制类、剧情显示模块。
c)信息显示模块:
调用界面显示模块
4.运行设计
4.1运行模块组合
a)主界面模块与界面显示模块组合:
共同完成游戏主界面和各个子界面之间的切换,以及相应用户的输入。
b)主界面模块与游戏设置记录模块组合:
完成用户对游戏设置的记录工作。
c)主界面模块与信息显示模块组合:
完成对“关于我们”、“游戏指南”中文字的显示功能。
d)游戏总控模块与信息显示模块组合:
完成了对“最高分”的显示功能。
e)游戏总控模块:
游戏总控类与模式控制类组合:
完成游戏中对不同模式游戏的选择。
游戏控制类、模式控制类与挑战模式类组合:
完成挑战模式状态下,游戏的运行以及相应操作的响应处理。
游戏控制类、模式控制类与剧情模式类组合:
完成剧情模式状态下,游戏的运行以及相应操作的响应处理。
子弹模块类与Boss模块类、Player模块类、保护层模块、音效模块、游戏信息记录模块、剧情显示模块、剧情模式类组合:
共同完成了在剧情模式下,游戏具体操作时的运作,完成Boss对子弹的控制,人物对保护层的获得和释放,爆炸效果的显示,剧情的进展,以及剧情模式下的所有对话显示,以及游戏结束需要保存的各种信息等主要功能。
子弹模块类与Player模块类、音效模块、游戏信息记录模块组合:
完成了在挑战模式下游戏的具体运作,并能够记录游戏中游戏运行的时间,以及结束游戏时的最高分记录等主要功能。
子弹模块类与Boss模块类组合:
完成剧情模式下,Boss发射不同特效子弹的功能。
保护层类与Player模块类组合:
完成了剧情模式下,Player对保护层的获得和使用等功能。
4.2运行控制
在主界面选择功能时,用户可以通过导航键的左右键来控制光标的左右运动,来选择不同的功能,通过左右软按键实现对选中项的确认或者是返回。
游戏过程中,用户可以通过导航键来控制角色的上下左右运动,通过按键0来释放道具(防护罩)。
5.系统数据结构设计
5.1逻辑结构设计
a)界面显示控制类
类名:
MainIntfcCtrlor类
主要功能:
这是一个流程控制器类,控制整个系统的工作流程,如各个用户界面的切换,及在这些界面中用户输入的接收及其响应,控制游戏处理器控制权的转换。
主要字段:
常量//每个下属子界面定义一个常量用作代表
MIDlet//静态类引用
Display//静态类引用
privatestaticintcurrent//当前显示界面
主要方法:
publicstaticvoidflow(Stringcmd)
//用户输入命令及当前界面并响应之(设置current的新值);
publicstaticvoidshow(Objectobj)
//current所指示的界面的显示;
//Obj:
传入的信息显示模块中待显示信息,使用时得强制转换成String型
SubIntfces类继承自GameCanvas类
所有游戏中将用到的界面的父类,完成各界面的绘制,及在响应用户输入时的动画效果实现。
staticMenuItem[]
//数组(items)存储各界面中待显示的菜单项
int[]//数组(itemStatus)用以记录这些菜单项的显示位置
publicvoidinput()
//用以检测当前用户按键状态,以采取相应的应对手段
privatevoidshiftLeft()
//用户按下左键之后的处理手段,按下其它三个键之后的处理方式与之相同.
publicvoidshow()
//重绘、显示界面
b)游戏设置信息类
类名:
SetInfoRecord
记录用户选择的声音开关状态,选择的游戏模式。
BooleanmusicOn//选择的声音开关状态
BooleanisChlgMode//是否选择了挑战模式
c)游戏总控及游戏模式控制
游戏总控类:
GameCtrlor继承GameCanvas
完成游戏中的总体工作流程控制及相应配置信息的记录,以协调各个模块的相互调用;
GameInfoinfo//记录游戏信息
ModeCtrlormc//模式控制
MusicPlayermp//音效控制
SetInfoRecordsid//用户的设置信息
GameCtrlor(SetInfoRecordsid)
publicvoidmainCtr()
//控制游戏进行的总流程
模式控制类:
ModeCtrlor继承GameCanvas实现Runnable接口
作为两种模式的父类,描述其基本功能。
intmaxNormalBulletNum;
//最多普通子弹的数目
intspeed;
//普通子弹移动的速度
intlatencyTm
//持续时间,-1表示无穷大(即挑战者模式)
BulletCollectionbullets//所有子弹构成的集合
Playerply//角色对象
voidshow()//更新画布
voidsetX(x)//设置字段的值
挑战模式类:
ChlgModeCtrlor继承ModeCtrlor
实现挑战模式最基本的功能
InfoBoardboard//用于最高分的显示
publicvoidshowInfoBoard();
//用以显示最高分;
剧情模式类:
SceneModeCtrlor继承ModeCtrlor
实现对剧情模式的控制
Bossboss//关卡守护者
SceneDialogsd//控制剧情
ProtectedShieldps//保护层
intlevel//记录关卡数
publicvoidgenerateProtectedShield();
//控制产生保护层。
publicintgetX();
PulbicvoidsetX(x);
publicvoidpassGate();
//控制过关
publicvoidshowDialog();
//显示剧情
d)子弹集类
抽象类:
BulletIntf
描述子弹类的一般功能、属性
常量:
子弹类型(一般子弹、特殊子弹)
Position(坐标值)//子弹当前的坐标
inttype;
//当前子弹所属类型
getX();
setX();
publicvoidshow(Graphicsg);
//显示相应的子弹。
一般子弹类:
NormalBullet
描述普通子弹类的一般功能、属性,继承至BulletIntf
inttype;
记录当前子弹所属类型
BooleancanHitBoss;
//是否具有对Boss的攻击性(是否被防护圈反弹)
publicBooleancanHitBoss();
特殊子弹:
SpecialBullet
描述特殊子弹类的功能、属性
//记录当前子弹所属类型
无
子弹集合类:
BulletCollection
将众多的子弹集合成一个整体,以实现特定的效果
intbulletNum//所包含的子弹数目
inttrackType
//子弹轨迹特效类型,用TrackCtrlor中的相应常量值来为其赋值
BulletIntf[]//该集合中的所有子弹
publicPosition[]getPositions();
//得到此集合中所有子弹的当前坐标
publicintgetTrackType();
//得到轨迹特效类型
publicBooleanhasHitPlayer(Positionpos);
//检测当前子弹集合中是否有子弹击中角色,pos是角色的重心坐标
publicvoidupdatePosition()
//根据相应的特效类型,产生此集合类中的所有子弹的新坐标,特殊子弹超越屏幕边界时的消失问题以及一般子弹碰到边界时反弹问题都在此方法中实现。
publicvoidshow(Graphicsg);
e)子弹特效类
TrackCtrlor
用于生成能产生不同子弹特效效果图的新子弹坐标
用以标识不同的子弹特效
publicPosition[]nextPositions(BulletCollectionbc,Playerp);
//得到集合类中所有子弹在一特定特效效果下的下一次坐标值;
//bc是为了取得当前所有子弹的坐标;
//p用以判断是否接触到防护圈。
privatePosition[]genPosWithXEffect();
(一系列方法)
//用以产生相应子弹轨迹特效的子弹集合新坐标的方法。
f)游戏信息记录类
GameInfo
记录挑战模式的最高分,记录剧情模式中的现场信息.
longstartTime;
longlastedTime;
SceneRecord
write()
read()
SceneRecord
用以记录当前屏幕上的所有对象的信息
Player
ProtectedShield
Boss
BulletCollection[]
read();
g)剧情显示类
SceneDialog
用以实现Boss与Player剧情对话的显示
Image//出现对话时的人物图片
intlevel//记录当前关卡
Position//x,y坐标值
SceneTxtboxtxtbox//生成的txtbox对象来显示文字
SceneDialog(intlevel);
publicvoidshow()
//显示剧情中对话时的人物图片
SceneTxtbox
用于显示剧情对话中的文字部分
Image//文本框的背景图片
Position//x,y坐标值
Stringcontent//要显示的文字信息
publicvoidshow();
//在指定的位置显示指定的内容
publicvoidsetContent(Stringstr);
//设置要显示的内容
5.2物理结构设计
a)运行时动态加载的数据结构:
此类数据结构在内存中的组织形式是由手机操作系统来进行控制与管理的。
b)需永久性存储的数据结构:
本游戏中需永久性存储的数据结构集中于GameInfo类及SceneRecord类,这两个类主要负责的是游戏挑战模式最高分及剧情模式中游戏进度(现场信息)的保存。
要将这信息进行永久性保存,必然是存入手机中JavaME的RMS之中,是将所有的信息转换成字节数组之后作为一个整的记录存放下来。
而其具体的组织也是由JVM与手机操作系统所安排。
5.3数据结构与程序关系
此关系用表格形式显示如下:
游戏设置记录
模块
界面显示控制类
游戏设置信息类
游戏总控及游戏模式控制
子弹集类
子弹特效类
游戏信息记录类
剧情显示类
6.系统出错处理设计
6.1出错信息
用一览表的形式说明每种可能的出错或故障情况出现时,系统输出信息的形
式、含义及处理方法,表格如下:
故障或错误
系统输出形式
处理方法
死机
画面不能动,键盘失效
重启手机或修理
来电或短信
弹出提示
停止当前线程
手机没电
黑屏
退出游戏
本软件与系统不兼容
游戏不能运行
不做任何处理
用户不小心按到退出
提示用户是否确认退出
响应用户的反馈信息
保存没有完成就强行退出
不显示成功保存的提示
不保存
无法读取数据库
之前没有成功保存任何信息
返回到主界面
6.2补救措施
故障出现后可能采取的变通措施包括:
游戏程序在编写和运行的过程中,由于设备和人为问题而造成的数据信息丢失,可以采用一些可移动的设备(如U盘、移动硬盘等)周期性的保存数据信息。
6.3系统维护设计
为了系统维护的方便,程序内部设计中作出安排,如:
在程序中专门安排用于系统的检查与维护的检测点和专用模块,游戏编码时添加专供调试使用的一些测试模块程序。
(后记:
在张明老师的指导下,我们完成了这份概要设计说明书,如有遗漏或不妥之处,希望大家给我们多提宝贵意见)