python飞机大战概要设计说明书_概要设计文档
---恢复内容开始---
飞机大战概要设计文档规格说明书
1.引言部分
1.1目的
该文档旨在阐述飞机大战的基本情况。主要包含内容涉及飞机大战的功能概述及详细说明。
本文档预期的读者包括全体小组成员及指导教师。
1.2 范围
1.2.1 项目目标
研发一个能够增添乐趣的小游戏,不仅能够缓解无聊时光,还能提升生活品质,满足休闲娱乐的需求
1.2.2 主要项目需求
该游戏主要功能包括:
● 操控战机
● 发射炮弹
● 攻击敌机
1.2.3 项目设计约束、限制
该游戏支持鼠标或键盘操控。
1.3缩写
无
1.4参考资料
[1]软件工程方法与实践第3版 主编 窦万峰 机械工业出版
2.数据设计
本部分重点阐述软件系统中所涉及外部存储介质中的数据结构及其组织形式。若数据采用数据库文件形式存储,则需阐述其对应表名及字段结构;若以独立外部文件形式存在,则需分析其内部存储架构。
2.1数据对象和形成的数据结构
该游戏系统涉及的主要数据结构如下:
存档模块:用于保存玩家的游戏进程状态。其中的数据存储采用JavaScript对象形式。
战机:说明战机的基本信息及其性能参数。具体包括移动的最大和最小的速度参数以及弹药库容量等内容。其数据结构采用JavaScript对象的形式表示。
道具:当角色积累足够的经验加成时而生成,在游戏世界中被设计用于分别提升角色的各种属性值。这种道具能够显著提升战力水平。其实现形式为JavaScript对象结构。
敌机:在游戏战斗中遇到的敌军战斗机包括普通战斗机和BOSS战舰等类型。击败后将获得经验值奖励,并且其数据结构遵循JavaScript对象类型的设计
游戏基本参数:涵盖启动、暂停等功能信息。数据结构采用JavaScript对象表示。
系统信息:涉及开始界面的音乐与视觉风格设置。该数据结构属于JavaScript对象类型
2.2文件和数据库结构
描述文件的数据结构或者库表的结构
2.2.1外部文件结构
包含构成游戏所需的插图元素、音效以及各类数据文档(如道具信息、敌机设定等)。该电子竞技产品的相关外围文件包括:
背景音乐文档achievement.mp3、buttet.mp3、game_music.mp3、enemy_down.mp3
插图文档shoot.png、shoot_background.png
游戏进度保存文档file.rpgsave
游戏标志btnbg.png
游戏配置文件project.json
各类数据文档data.json
2.2.2全局数据
该游戏系统的全局变量有:
游戏进行时间Totaltime。
公共事件处理器PublicEventProcessor。
变量计数器VariableCounter
游戏全局基本数据结构定义如下:
properties:()=>({
pause: cc.Button,
btnSprite: {
default: [ ],
type: cc.SpriteFrame,
tooltip:‘暂停按钮不同状态的图片‘,
},
bomb: cc.Node,
gameMusic: {
default: null,
type: cc.AudioSource
},
useBombClip: {
type: cc.AudioClip,
default: null,
},
enemyGroup: {
default: null,
type: require(‘enemyGroup‘),
},
hero: {
default: null,
type: require(‘hero‘),
},
ufoGroup: {
default: null,
type: require(‘ufoGroup‘),
},
bulletGroup: {
default: null,
type: require(‘bulletGroup‘),
},
scoreDisplay:cc.Label,
bombNoDisplay:cc.Label,
}),
2.2.3文件和数据交叉索引
背景音乐文档用在系统地图事件初始化功能中;
背景图片文档用在战斗事件功能中;
游戏标志文档用在数据库初始化功能中;
游戏配置文件用在游戏战斗事件功能中;
各类数据文档用在数据库初始化功能中。
3.体系结构设计
3.1数据和控制流复审
图1:飞机大作战系统总体数据流图
图2:游戏开始数据流图
3.2得出的程序结构
图3:飞机大作战游戏系统结构图
- 界面设计 本节主要阐述 界面设计 的基本要求、呈现顺序以及遵循的规范和标准。
4.1 人机交互规范制定界面对齐、交互规范及操作规范等基本要求,并规划并实现所有用户端的交互 interface。
飞机大战的界面对齐主要包括以下几种表现形式:平面二维界面对齐、立体三维界面对齐以及二维动画界面对齐等基本类型。
游戏加载界面:该界面用于显示游戏的加载进度。
游戏开始界面:此界面作为游戏的初始界面仅配置了一个启动按钮。
按下启动按钮即可开始游戏;此外,在此界面上方展示了当前的游戏名称,在下方则不断有飞机飞过。
系统总控界面:系统总控界面属于系统的主界面对象,在功能上具有重要的指导作用。它不仅承担着实现与用户之间交互的基本职责还包括协调各子系统的运行工作。在设计上还应具备以下功能:首先能够展示当前操作者的权限范围;其次提供操作记录查询的功能;最后还需要展示强制性交换的时间参数等信息
系统设置界面:系统设置界面主要设置系统的运行参数。
游戏界面:玩家通过鼠标操控飞机游玩游戏,在线路上不得攻击任何飞行物;通过攻击消灭敌方飞行器。
游戏结束界面:当触碰其他飞行物时会触发 game 结束。此界面展示了 history 最高得分与最终 score 的数据信息。玩家可通过重新开始选项继续 game 以及查看 history 记录或退出 game 来完成当前 session。
4.2 人机交互界面设计规范 简述各界面对应的功能需求与交互逻辑关系;详细规定各界面的操作流程及相应的处理机制
登陆界面序列:输入用户名和密码 — 验证身份。
游戏总控制界面序列:启动游戏 — 启动新游戏 — 进入游戏 —(游戏存档)— 结束游戏。
启动游戏 — 载入存档 — 进入游戏 —(游戏存档)— 结束游戏
5.接口设计
5.1外部接口设计
与外部系统或设备的连接关系和通信方式。
5.1.1外部数据接口
暂无。
5.1.2外部系统或设备接口
与外部系统或接口之间的连接及通信方式。本系统的外部接口仅限于硬件级别的对接要求,在此框架下,鼠标键盘等设备采用USB接口实现与其他设备间的功能连通。
5.2内部接口设计规约
内部接口主要负责软件逻辑模块之间的调用关系。
其设计规范规定了各模块间的调用关系以及传递的数据结构。
5.2.1内部模块接口调用关系
通过查看图B-8可以了解各模块之间的接口调用关系。为了方便讨论分析,决定为每个模块分配唯一编号,并对原有结构图进行优化调整。各模块间的接口调用关系如下所述。
图B-9 飞机大战系统结构图(带编号)
● 系统总模块:SceneManager.run
● 登陆模块:SceneManager.login
1.1读入用户名和密码:SceneManager.
1.2 验证身份:SceneManager.verify.
● 总控模块:SceneManager.program.
2.1 开始游戏:SceneManager.startgame.
2.1.1 初始化:SceneManager.init.
2.1.2 记录分数:DataManager.score.
2.1.3 操控战机:TouchInput.fight.
2.1.4 显示成绩:DataManager.achieve.
2.2 系统设置:ConfigManager.makeData
2.3 游戏帮助:SceneManager.help.
2.4 查看当前分数:DataManager.nscore
2.4.1 显示结果:DataManager.outcome
2.5 退出游戏:SceneManager.endgame
5.2.2接口数据结构
描述接口的每个参数数据结构、参数顺序和默认值。
主要数据结构有user、Managers等。
6.模块过程设计
6.1处理说明
游戏程序加载模块:设置基本的参数,对各个子系统模块进行初始化操作。
游戏界面设计模块:设置游戏界面等等。
游戏对象绘制模块:对战机、敌机、炮弹等进行设计。
游戏动作执行模块:进行攻击,移动等等。
游戏规则执行模块:根据玩家的当前动作进行相应的响应,并判断其是否命中目标单位的同时评估其对敌方飞机的破坏效果。
6.2使用的模块
系统程序加载模块在启动时,会初始化其他各个模块。
其余各个模块在游戏进行时,会相互调用。
7.需求交叉索引
描述需求与模块的关系、存在交叉的部分,即共享模块的调用关系。
●登录功能:1登陆。
●用户管理:1-1读入用户名和密码、1-2 验证身份。
●游戏开始: 2-1 开始游戏。
●设置系统:2-2 系统设置。
●帮助:2-3 游戏帮助。
●显示成绩:2-4 查看当前分数、2-4-1 显示结果。
●结束游戏: 2-5 退出游戏。
8.测试部分
本部分描述测试的原则与方法,以及测试策略和计划。
8.1测试方针
针对核心功能的重点测试阶段,在确认游戏运行流畅性的同时,请检查玩家积分结果的准确性等问题。采用黑盒测试方式与白盒测试方式相结合的综合评估策略
8.2集成策略
本项目采用自顶向下的方式进行测试。
一层一层往下测试。
8.3特殊考虑
注意击中敌机与得分设置,和键盘或鼠标的稳定性。
---恢复内容结束---
