hw7-模型與動畫作業

作業內容:智能巡邏兵

  • 遊戲設計要求:
  1. 創建一個地圖和若干巡邏兵(使用動畫);
  2. 每個巡邏兵走一個3~5個邊的凸多邊型,位置數據是相對地址。即每次確定下一個目標位置,用自己當前位置爲原點計算;
  3. 巡邏兵碰撞到障礙物,則會自動選下一個點爲目標;
  4. 巡邏兵在設定範圍內感知到玩家,會自動追擊玩家;
  5. 失去玩家目標後,繼續巡邏;
  6. 計分:玩家每次甩掉一個巡邏兵計一分,與巡邏兵碰撞遊戲結束;
  • 程序設計要求
  1. 必須使用訂閱與發佈模式傳消息
  2. 工廠模式生產巡邏兵
  • 友善提示1:生成 3~5個邊的凸多邊型
  1. 隨機生成矩形
  2. 在矩形每個邊上隨機找點,可得到 3 - 4 的凸多邊型
  • 友善提示2:參考以前博客,給出自己新玩法

作業設計

MVC架構圖

由於新增了訂閱與發佈模式,所以MVC架構圖參考了以往博客的UML圖。
在這裏插入圖片描述

具體設計

1.PatrolFactory
(1)工廠模式生成巡邏兵。一共有9個巡邏兵,活動範圍固定,並且用列表記錄。
在這裏插入圖片描述
(2)當遊戲結束的時候,所有的巡邏兵都會停止動作。
在這裏插入圖片描述
(3)巡邏兵的狀態有Idle、Walk、Exit這幾個。
在這裏插入圖片描述
2.CameraFlow
相機跟隨玩家移動。
在這裏插入圖片描述
3.發佈與訂閱模式
由FirstSceneController控制遊戲的開始和結束。當Actor觸發了某些遊戲規則,就可以發佈相應的信息,然後通過信息的參數,訂閱者就會做出相應的動作。除了巡邏兵是訂閱者,SceneController也是訂閱者,因爲需要處理加分的事項。
在這裏插入圖片描述
事件控制管理:當玩家避開追蹤和碰撞到巡邏兵時分別觸發加分和遊戲結束事件。
在這裏插入圖片描述
4.玩家和巡邏兵
(1)巡邏兵的數據
包括巡邏兵的區域編號、是否跟隨玩家、初始位置等等。
在這裏插入圖片描述
(2)巡邏兵追擊玩家
當玩家進入巡邏兵的活動範圍時,巡邏兵會主動追擊玩家;如果玩家離開追擊範圍後,巡邏兵不再攻擊。
在這裏插入圖片描述
(3)巡邏兵的動作管理
根據事件的觸發,實現各個動作的切換。
在這裏插入圖片描述
5.遊戲規則和界面
一共有9個巡邏兵,在屏幕顯示分數和操作規則“按WSAD鍵或方向鍵控制移動”。玩家成功躲避一個巡邏兵加1分,累計10分即遊戲勝利,失敗則可重新開始遊戲。
在這裏插入圖片描述

源代碼和遊戲視頻

見我的Github

參考博客

https://blog.csdn.net/C486C/article/details/80153548

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章