浅谈场景编辑器开发
?????????最近負責一款2D客戶端場景編輯器的開發工作,獲益良多。現在就操作層面跟大家分享一下開發中的幾個著重點。
????????1 事件響應模塊:
?????????編輯器的操作極其復雜,如果沒有一個清晰的事件分發流程,操作邏輯處理起來苦不堪言。
?????????主要的思路是設定編輯模式,然后在每個編輯模式下再有多個子模式。例如建筑編輯模式,放置建筑子模式等。
?????????每個子模式下都有獨立的鼠標和鍵盤響應處理,如左右鍵 按下彈起的響應等。
???????? 這樣在進行邏輯處理時,先判斷當前編輯器所處的模式和子模式,即可進入對應的響應操作。
?????????2 場景對象層次:
???????? 編輯器的操作幾乎都是基于對象的,設定一個層次清晰的對象結構,在進行對象操作時則順風順水。如:基本對象,建筑對象,建筑組對象等。
???????? 3 撤銷重做模塊:
?????????如果沒有做過類似的編輯器,應該不會知道這模塊的重要性。
?????????在實際的場景編輯中,常常編輯錯了,就想恢復到編輯前的狀態,這就用到了撤銷重做的功能。
???????? 主要的實現思路是,當某個操作需要撤銷重做功能時,注冊一個對應的操作類,保存相關的參數,有對應的執行函數和撤銷函數。
?????????然后再把這操作保存到一個全局的操作列表,每執行一次撤銷操作則把最后一個操作從操作列表中移除。
???????? 因為記錄了相關的數據,所以在執行撤銷操作時,可以完全回到編輯前的狀態。
????????? 4 區域管理模塊
?????????障礙區,遮擋區,安全區,各種自定義區域等等,都是屬于區域操作范疇。這種操作用得最多的就是畫刷,所以畫刷的設計好壞影響重大。
????????? 5 編輯態文件
???????? 即除了包括游戲數據外還保存很多游戲不用的數據,但在編輯器使用過程中卻帶來很多便利。
?????????比較有利的一點是很多情況下導出的場景配置文件是二進制文件,所以看不到每個版本的修改內容,這時可通過對應的編輯態文件來對比。
總結
- 上一篇: 2018实用前端面试问题集锦
- 下一篇: 4个优化MongoDB的技巧