飞机大战详细设计说明书
1. 引言部分
本部分主要说明项目背景和术语定义等。
1.1编写目的
本部分阐明编写详细设计说明书的目的,指明读者对象。
该文档的目的是描述设计飞机大战的每个模块的细节,包括模块的接口、调用关系、处理过程和算法,一级模块测试方案等。以及总体结构设计等。
本文档主要读者包括全体小组成员及指导教师。
1.2 项目背景
本部分应包括项目的来源和编写成员等。
作为软件工程这门课程实验最终设计,该课题由我们小组提出并进行完善。项目全程由计科1704班小组没有萝北只有坑全体成员完成。
1.3定义
本部分列出本文档中所用到的专门术语的定义和缩写词。
BGM:Background Music,即背景音乐。
敌机:我方战机的敌对方,共三种类型,分为小型、中型和Boss战机。
精灵机:即我方战机,在游戏引擎中,主角被称为精灵机,故我方战机取名为精灵机。
攻击力:对对面造成伤害的多少。
暂停功能:游戏进行过程中按下暂停按钮可进入暂停模式,再按下暂停按钮则返回游戏
攻击范围:攻击的最大限度范围,超过这个范围则判定无法攻击。
战机大招:游戏过程中会随机降落清屏道具,吃下红色降落伞道具获取清屏功能,道具数量会叠加,按下道具按钮每次消耗一个道具可发动大招,对屏幕中的敌机进行清屏。
狂暴模式:吃下随机掉落的黑色降落伞道具会自动触发战机双向炮弹进入狂暴模式,该状态下战机处于狂暴状态,不会损失生命值,持续时间15s.
1.4参考资料
[1] 窦万峰.软件工程方法与实践[M].北京:机械工业出版社,2016.
[2] 窦万峰.软件工程实验教程[M].北京:机械工业出版社,2016.
1.5版本信息
具体版本信息如表1.3所示
表1.3 具体版本信息
修改编号 |
修改日期 |
修改后版本 |
修改位置 |
修改内容编写 |
1 |
2019-6-18 |
1.3 |
全部 |
完成修改 |
2. 总体设计
本部分简要给出系统的需求和软件结构的组成,以便追踪到需求与设计。
2.1需求概述
飞机大作战系统的需求定义如下:
系统初始化设置:设置基本参数,包括游戏开始的时间,当前分数。初始化游对象和绘图环境等等。
开始游戏:系统初始化界面和对象,自动记录分数,根据指示操控战机,并显示当前成绩。
查看分数:游戏界面直接显示当前分数。
退出游戏:系统提示是否确认退出,系统释放游戏对象,自动显示当前积分。
2.2软件结构
飞机大作战游戏系统的软件结构图如图所示。
3.程序描述
本部分针对每一个模块进行详细设计。
3.1 模块基本信息
1-1 初始化模块,说明如下:
功能:系统初始化界面和对象
1-2 画面制作模块,说明如下:
功能:制作敌机、战机、子弹、道具
1-2-2-2 操控战机模块,说明如下:
功能:根据指示操控战游戏过程中要进行碰撞检测、监听键盘和鼠标拖动事件。
1-2-4 制作道具模块,说明如下:
功能:制造两种道具,一种增加子弹道具,另一种清屏道具,清屏道具还要进行计数
1-3 记录分数模块,说明如下:
功能:记录当前分数
1-4 查看成绩模块,说明如下:
功能:查看成绩
3.2 算法
开始游戏要调用以下模块:
1-2 画面制作模块:制作战机、敌机、子弹、道具
1-3 记录分数模块:根据击毁敌机数量进行计数
1-4 显示成绩模块:显示当前分数
离开要调用以下模块:
1-4 显示成绩模块:显示最终成绩
3.3 程序逻辑
开始游戏逻辑图
开始游戏程序逻辑
1.系统初始化模块
功能描述:
(1) 打开游戏,初始化游戏,生成游戏角色
(2) 开始游戏
2.操控战机模块
功能描述
(1) 根据敌机出现的位置,手动改变我方战机的位置,避免相撞
(2) 采用鼠标操控或键盘操控战机运动方向和位置
3.记录分数模块
功能描述
(1) 根据游戏过程中消灭敌机数量增加分数
(2) 分数与销毁敌机数量同时变化,并记录到游戏界面指定位置
4.显示结果模块
功能描述
(1) 游戏过程战斗过程会随时根据结果记录数据
(2) 在战斗过程中记录游戏分数变化,并将结果反馈给游戏主界面
3.4 接口
整体游戏要注意Cocos creator游戏引擎接口
由于支持鼠标和键盘操控,要进行鼠标和键盘接口异常检测和处理。
3.5性能
(1)支持鼠标操作、键盘操作操作
(2)在CPU、内存占用的条件下,无重点问题发生。
3.6编码实现
本部分主要选取部分功能实现方式进行代码描述。
(1) 游戏初始化场景的创建
定义一个类,里面包含游戏中所用的所有数据
properties: {
按钮;
分数;
子弹;
碰撞;
暂停;
战机;
敌机;
音效;
}
onload:function(){
调用函数,初始化游戏
…………
}
创建战斗界面场景,并通过require()引入其他界面的js文件,onLoad:function(){}监听初始化事件
(2) 碰撞功能的实现
碰撞:function() {
选择结构
if(子弹碰撞)
选择结构
switch(条件)
case 选择1:
………
break;
case 选择2:
………
break;
………
else(敌机碰撞)
调用函数
………
}
通过编写一个选择结构,判断碰撞类型,每种碰撞应该触发对应的函数
(3) 鼠标拖动事件
鼠标拖动:function (事件){
监听鼠标拖动事件,调用cocos引擎的鼠标拖动函数
}
(4) 显示、存储分数功能
分数:function () {
选择结构
定义变量,获取分数值
if(分数不为零)
调用cocos引擎的数据存储方法,存入数据
显示数据到游戏界面
else(分数为零)
后台提示错误
}
(5) 键盘监听事件
键盘:function (事件){
监听键盘事件,调用cocos引擎的键盘监听函数
}
3.7测试要点
采用黑盒测试方法,对战机的初始值、成绩显示、以及界面与地图上事件的触发为测试要点。