著作權宣告
- 本文為“優夢創客”原創文章,您可以自由轉載,但必須加入完整的著作權宣告
- 更多學習資料請加QQ:1517069595獲取(企業級性能優化/Shader特效/熱更新/shader特效/服務器/商業專案實戰/每周直播/一對一指導)
我們的建造系統要實作的目標:

- WASD在地圖上移動
- 按1~6鍵切換建造單位型別
- 建筑單元可占據多個網格
- 左鍵按下執行建造(有建造效果)
- R鍵且換建造方向
- 右鍵按下銷毀建在單位
- 不能重疊建造
定義基礎網格資料結構


定義建筑預制體,點擊創建實體

點擊創建實體
解決創建位置重疊

只能創建在網格內(不能橫跨)

- 根據滑鼠位置得到網格位置
- 從而確保繪制在網格內
- 思考:如何從滑鼠位置得到網格位置?
確保不能重疊建造


配置各建筑單位的資料

解決跨網格建筑單位重疊


解決方法:
- 獲取建筑單位占據的所有網格坐標(如何實作?)
- 根據網格坐標找到網格物件
- 將這些網格物件都設定為被正在創建的建筑物占據
- 思考:如何實作GetPositionList?
使建筑單位創建方向可旋轉(難點)

定義旋轉軸(在Step2)
- 定義當前方向
- 定義旋轉規則
- 如何保持在同一個網格區域內旋轉?
- 思考如何實作:
- GetNextDir
- GetRotationOffset
- GetRotationAngle
按鍵切換建筑單位種類


- 建立一個建筑單位種類串列
- 默認新建第0個種類的建筑
建立建筑放置預覽效果



- GridObject改為存放PlaceObject
- 存盤PlaceObject到GridObject
右鍵清除預覽物件

運用放置效果

商業進階

- 如何實作建筑單位升級?
- 升級系統(資料配置、UI界面、升級邏輯、服務器互動…)
- 如何實作建筑單位的AI?
- 建筑單位的抽象化:
- 怪物:自動戰斗
- 角色:自主行為(休息、作業、娛樂、生活)、與場景內道具單位(如駕駛設施)的互動
- 設施:自動穿行的出租車、游樂場設施等
- 資源:可開采物、可拾取道具、障礙…
- 如果有成百上千個建筑呢?
- 如果不同的玩家型別可以建造的建筑型別不同呢?
- 如何增加建造游戲單元的UI操作界面?
- 如何聯網游玩?


優夢創客創作一款大家愛玩的游戲,有問題大家可以加艾麗絲老師的QQ1517069595,如果你想跟我交流你可以通過艾麗絲老師加我,然后呢我們也可以進行進一步的溝通,感謝大家的觀看,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/288957.html
標籤:其他
上一篇:圖的存盤與遍歷C++實作
下一篇:Python模塊注入-SSTI
