這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/computer-scienc |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/computer-science-class3-2018/homework/11978 |
這個作業的目標 | 需求分析 |
小組組號和隊名 | 15組 好吃又易燃 |
隊長的姓名 | 張晏子 |
1.非功能性需求
這是一款第一人稱FPS射擊游戲。可在Windows,MacOs,Android等多平台下運行。游戲性方面,除了傳統的FPS游戲的功能,還增加了更多的隨機事件。
程序支持靈活的配置文件,無須依賴數據庫
二、功能性需求
1.用例圖
2.用例描述
簡要描述:
首先程序創建之后,star場景顯示,用戶可點擊開始游戲按鈕,此時采用同步加載場景的方法進入游戲場景,由於系統使用單例模式,Game Manager會實例化一個對象。
進入場景后,游戲默認以60幀運行,第一幀系統初始化,角色對象創建,等待用戶操作。當用戶存檔時,將游戲必要數據寫入注冊表,當用戶下次進入游戲時可以讀取存檔。
當用戶要退出時點擊結束按鈕,可以結束游戲。
————————————————————————————————————————————————————————————
具體用例描述:
用例名稱:移動
參與者:玩家
簡要說明:玩家控制人物移動,跳躍,跑步,下蹲,轉向
前置條件:Actor對象已創建,游戲非暫停狀態
基本事件流:
玩家輸入指令,Actor接收指令並根據getAxis的值判斷當前行為。
1.移動:按下“W”鍵,系統會得到一個0~1的單精度浮點型變量,玩家按下的時間越長,值越大,系統會將這個值傳遞給Move類,Move類會根據Actor當前的Vector3每幀刷新一次transfrom,從而實現移動的效果。
2.跳躍:游戲每幀都-=玩家向量Y軸上的分量,並判斷是否落地,如果落地則判斷是否鍵入了空格,如果鍵入則給予Y軸上的分量一個正值。
3.下蹲:每幀判斷是否鍵入了ctrl鍵,如果鍵入了則修改角色碰撞器的高度值,並減小移動速度。
其他事件流:無
異常事件流:對象未被創建,角色被卡在牆里
后置條件:角色執行動作
注釋:WASD前后左右移動,空格鍵跳躍,ctrl下蹲,Shift+WASD奔跑,鼠標滑動轉向
————————————————————————————————————————————————————————————
用例名稱:切換視角
參與者:玩家
簡要說明:第一人稱和第三人稱的視角切換
前置條件:游戲非暫停狀態
基本事件流:
每幀檢測玩家的指令,若檢測到則已Actor為父類,更新攝像頭的位置。
其他事件流:無
異常事件流:無
后置條件:視角切換
注釋:按“V”鍵切換
————————————————————————————————————————————————————————————
用例名稱:實現UI界面
參與者:玩家
簡要說明:系統設置,開始界面,角色狀態等的顯示
前置條件:
基本事件流:
玩家剛進入程序顯示開始界面,進入游戲后角色狀態一直顯示,玩家按ESC呼出系統設置界面
其他事件流:無
異常事件流:無
后置條件:游戲暫停
注釋:開始界面也可以進入系統設置
————————————————————————————————————————————————————————————
用例名稱:狀態顯示
參與者:玩家
簡要說明:角色的HP EXP,怪物的HP等的顯示
前置條件:角色存在或怪物生成
基本事件流:
每幀都獲取到角色和怪物當前的一些屬性,並顯示在Slider上。
其他事件流:無
異常事件流:無
后置條件:隨時顯示當前對象的狀態
注釋:
————————————————————————————————————————————————————————————
用例名稱:系統設置
參與者:玩家
簡要說明:系統設置
前置條件:
基本事件流:
用戶按ESC鍵打開系統設置,系統設置包含音量設置、鼠標靈敏度、視野范圍、幀率、退出按鈕,返回按鈕等。其中包含Slider、下拉列表框,按鈕等一些UI組件。
其他事件流:無
異常事件流:事件未被監聽
后置條件:
注釋:被設置值為全局變量,且動態保存。
————————————————————————————————————————————————————————————
用例名稱:開始界面
參與者:玩家
簡要說明:游戲的開始界面
前置條件:打開程序就會顯示此界面
基本事件流:
玩家按下開始按鈕,會同步加載游戲場景,場景跳轉;繼續按鈕:從上次游戲結束的位置開始;設置:打開系統設置界面;開發人員:顯示開發人員名單;退出:結束進程。
其他事件流:無
異常事件流:開始游戲時,未查找到加載的場景
后置條件:
注釋:界面都為按鈕組件
————————————————————————————————————————————————————————————
用例名稱:射擊
參與者:玩家
簡要說明:射擊,換彈,切換武器,創建動畫器
前置條件:角色持有武器,物品欄系統正常
基本事件流:
用戶選擇武器,系統創建一個武器預制件對象的克隆體,克隆體包含子彈子類,用戶點擊鼠標左鍵會啟用射線檢測,同時創建子彈克隆體,子彈會沿着角色當前的Z軸方向發射,同時每按下一次鼠標會啟用一個計時器線程,限制子彈發射的速度。
如果射線檢測到了怪物,則怪物則減HP。
其他事件流:無
異常事件流:找不到子彈的對象,射線檢測沒有檢測到物體
后置條件:子彈發射,檢測到物體
注釋:按鼠標左鍵觸發,子彈的軌跡為預設的起點到射線檢測到物體的接觸點
————————————————————————————————————————————————————————————
用例名稱:切換武器
參與者:玩家
簡要說明:切換武器
前置條件:角色持有武器,物品欄系統正常
基本事件流:
用戶按1234鍵選擇武器,武器圖標會在物品欄上顯示
其他事件流:無
異常事件流:
后置條件:切換武器
注釋:
————————————————————————————————————————————————————————————
用例名稱:生成怪物
參與者:玩家
簡要說明:游戲生成怪物
前置條件:角色觸發生成怪物的事件
基本事件流:
角色觸發事件,系統會在角色附近生成怪物。
其他事件流:無
異常事件流:怪物卡在牆里
后置條件:怪物生成並攻擊角色
注釋:
————————————————————————————————————————————————————————————
用例名稱:生成怪物AI
參與者:玩家
簡要說明:怪物的行為
前置條件:怪物對象存在
基本事件流:
怪物生成后,每幀都會得到當前角色的空間位置,怪物的Z軸始終朝向角色,怪物會朝向角色移動,怪物靠近角色后會攻擊角色,怪物分boss和小怪兩大類,boss會隨機召喚小怪。怪物死亡后對象被銷毀。
其他事件流:無
異常事件流:怪物卡在牆里
后置條件:怪物生成並攻擊角色
注釋:多種怪物有多種行為
————————————————————————————————————————————————————————————
用例名稱:創建動畫器
參與者:玩家
簡要說明:槍械更復雜的運動
前置條件:槍械對象創建
基本事件流:
槍對象被創建后默認播放持槍動畫。射擊時播放后座力動畫。
其他事件流:無
異常事件流:未查找到動畫
后置條件:
注釋:用Animation組件創建動畫,Animator組件編輯動畫邏輯
————————————————————————————————————————————————————————————
3.順序圖
4.分析類圖