---恢復內容開始---
飛機大戰概要設計文檔規格說明書
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.界面設計
這一部分主要給出界面設計的總體要求和界面序列,以及界面設計規約。
4.1人機界面規約
給出界面風格、約定和操作要求,設計出用戶的所有界面。飛機大戰的界面主要包括下面幾種。
游戲加載界面:該界面用於顯示游戲的加載進度。
游戲開始界面:該界面作為游戲的起始界面,只有開始游戲一個按鍵。點開始游戲即可進行游戲;該界面還顯示了游戲名稱,下方是不斷有飛機划過。
系統總控界面:系統總控界面是系統的主界面,主要完成與用戶的交互任務,接收用戶的請求,並調用相應的模塊。另外總控界面應能夠顯示用戶的角色信息和駕馭者的工作時間,以及顯示強制交換的系統時間等。
系統設置界面:系統設置界面主要設置系統的運行參數。
游戲界面:用戶通過鼠標操作飛機進行游戲,不可觸碰其他飛行物,可通過攻擊來消滅其他飛行物。
游戲結束界面:若觸碰了其他飛行物,游戲結束。該界面顯示了歷史最高分數、最終得分。可選擇重新開始、歷史成績、離開游戲。
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特殊考慮
注意擊中敵機與得分設置,和鍵盤或鼠標的穩定性。
---恢復內容結束---