飛機大戰詳細設計說明書
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測試要點
采用黑盒測試方法,對戰機的初始值、成績顯示、以及界面與地圖上事件的觸發為測試要點。
