UI框架

1、UI特點:佔了項目50%的工作量;技術不難,但它的好壞決定了產品的品質;

                      有通用的框架,可加快開發進度和提高代碼質量,讓新人也能很好完成任務;

2、UI的定義:人機交互,直接影響玩家體驗,所以必須做得卓越;

                          它是數據的可視化表現,採用“基於數據的編程”;

      UI卓越=代碼好+數據表現正確+界面美觀+操作感好+操作流暢;

      內容:管理所有View:GUIManager類+BasePanel類;

                  每個獨立功能模塊,推薦使用MVC架構;

                  UI通用工廠:界面、組件、功能接口;

                  UI性能優化;

                  歷史UI棧、UI分層管理、適配、UI統一規範;

3、數據的管理

        三種數據:配表、網絡協議數據、臨時數據(界面、或模塊內產生的);

        作爲MVC架構的一員,通常用類來封裝;

        UI只是數據的可視化而已,一切UI操作都圍繞它們進行;

4、(一)統一管理所有View:GUIManager類+BasePanel類

      GUIManager類是個單例,它有大量成員變量,可記錄一些狀態信息(使用“基於狀態機”的編程);

      每個View的行爲都會影響到BasePanel類,而在BasePanel內部調用GUIManager的接口,

      這樣就可以通過GUIManager記錄所有UI狀態並管理它們,例如curPanel_id, lastPanel_id等;

5、(二)UI工具類、工具函數封裝

       1)應該有guiToos目錄,封裝了一些類、函數,方便快速代碼迭代

       2)內容:適配、UI分層

6、(三)MVC架構

       M:類封裝,該類定義了數據結構、數據的處理(增刪查改);

             類的子對象保存到Controller裏;

             臨時數據可直接保存在對應View類裏;   

       V:每個Panel封裝爲一個類,管理該界面的一切邏輯;

              建議封裝一個BasePanel類,所有界面都繼承它

      C:對內管理整個模塊運作,有M、V類對象做成員變量;

             對外提供操作接口,有一系列public成員函數

7、View的封裝

    1)有BasePanel類,所有界面View都繼承它,它有兩個作用:

          封裝一些通用功能、接口,例如:資源加載、顯示、銷燬;

          便於管理所有UI;

    2)每個View類都有一套通用模板,可加快開發效率

8、View類通用模板(規則)

   1)使用“基於數據”的編程

   2)三大操作:創建界面、數據顯示、數據操作

   3)創建界面createPanel

         <1>只創建靜態界面,不賦值,與數據無關;

         <2>使用“界面佈局法”,例如左右結構-createPanel(){createLeftPanel(); createRightPanel();}

         <3>單例工廠類ComponentFactory創建各種組件:因爲組件就10幾種(按鈕、label、滾動條等)

         <4>大量同類型組件的處理:例如揹包上各種格子,沒必要每個都創建;

                第一個GO對象:在createPanel()裏創建

               其它對象可通過實例化創建:GO2=GameObject.Instantial(GO)

               實例化的地方:若數量少且與數據關係不大 —— 在createPanel(),例如5顆星星;

                                           否則,在refreshPanel(),例如揹包物品

   4)數據顯示refreshPanel

         <1>兩大操作:動態組件的賦值 + 動態創建(針對那些根據數據情況而創建的原件)

         <2>顯示更新分兩種:全局更新、局部更新(節省性能)

   5)數據操作:玩家點擊事件的處理

         <1>兩大操作:數據更新、刷新面板refreshPanel

   6)代碼模板可參考博客“View類通用模板”

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