fgui的ui管理框架_FGUI+Laya Air 游戏架构之stage分层架构
先提前說明,此架構(gòu)是幼麟棋牌框架的作者 @麒麟子 大神教給筆者的,麒麟子大佬給了一套基于FGUI+Laya Air寫的棋牌大廳界面子工程學(xué)習(xí),奎斯花了一段時(shí)間從代碼中學(xué)習(xí)并初步總結(jié)了出了分層游戲架構(gòu)的基本模式,因?yàn)橹皇浅醪綄W(xué)習(xí),還有一些其他模塊奎斯暫時(shí)沒有加(比如網(wǎng)絡(luò)模塊),下面奎斯分享出這套游戲架構(gòu)(這里只介紹理論總結(jié),不貼具體代碼)。
一、分層架構(gòu)基本模式:
先UI分層架構(gòu)圖:
在分層架構(gòu)中,我們將UI拆分為game、hub、popup、notice、alert、mask六大層次:
GAME:主要用于放置玩家可見的游戲場(chǎng)景,比如游戲預(yù)加載場(chǎng)景、大廳場(chǎng)景等等
HUB:一般就是漂浮在場(chǎng)景之上的按鈕?玩家信息欄之類的
POPUP:游戲彈出層 比如游戲結(jié)束界面等
NOTICE:一般就是鎖屏提示?比如網(wǎng)絡(luò)重連時(shí)候?提示?正在鏈接服務(wù)器。?或者加載界面的時(shí)候?提示一個(gè)loading
ALERT:是屬于一種特殊的彈出層,彈出確認(rèn)提示框之類的
MASK:遮罩一般與彈出層配合sh,比如出現(xiàn)一個(gè)提示框的時(shí)候,除了提示框部分其他部分就要變暗,有一種淡入淡出的效果。
而上面每一層層次在zOrder上都是逐漸由低到高,一般我們會(huì)把每層用枚舉類型標(biāo)識(shí)。
二、分層管理模式:
在分層架構(gòu)中,采用一種Master-Scene-UI的管理方式。除了類似Alert這種比較通用的都放入Basic包體,一般我們會(huì)把每一個(gè)UI(包括GAME層)在FGUI中都做成一個(gè)單獨(dú)的包體
每個(gè)UI都會(huì)有一個(gè)Master組件、一個(gè)Scene組件、一個(gè)Page組件:
這三種組件都繼承自一個(gè)公共的父類master、scene、page,并分別由master_manager、scene_manager、ui_manager來管理,而這三類組件的關(guān)系是:
1.master_manager負(fù)責(zé)管理scene_manager
2.scene_manager管理ui_manager
3.ui_manager管理每層分層的具體顯示與刪除
所有配置信息寫入單獨(dú)的類中在初始化時(shí)統(tǒng)一傳入master_manager管理器,這里奎斯直接貼出大廳子工程中的全局圖:
在UI顯示出來后,具體的游戲業(yè)務(wù)邏輯我們都寫在每個(gè)UI的page組件中。
三、實(shí)例簡(jiǎn)單演示:
奎斯在初步學(xué)習(xí)完之后,將分層架構(gòu)用一個(gè)簡(jiǎn)單的五子棋小游戲?qū)崿F(xiàn)了遍,這里簡(jiǎn)單演示下:
1.可以看到我們將包體分別各種UI(包括游戲場(chǎng)景和懸浮于場(chǎng)景上的)和公共組件兩部分,下面顯示是大廳場(chǎng)景和游戲場(chǎng)景的UI部分,我們通常會(huì)掛在GAME層。
2.Alert上面說過是一種特殊的彈出層,他與POPUP層不同在他是一種可以復(fù)用的提示框很多地方多次用到,而POPUP層是每一種UI都完全不同。
3.游戲結(jié)束奎斯是做成了一個(gè)單獨(dú)的提示框UI放到POPUP層,在調(diào)用完Alert的UI后再調(diào)用結(jié)束UI,并在調(diào)用的時(shí)候使用遮罩,內(nèi)容在代碼部分再改變,比如"游戲結(jié)束,xx勝利了!"
讀者可以根據(jù)這種基本分層再按需求劃分UI,這是奎斯目前的分層架構(gòu)的初步總結(jié)。
歡迎閱覽奎斯文章。
總結(jié)
以上是生活随笔為你收集整理的fgui的ui管理框架_FGUI+Laya Air 游戏架构之stage分层架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何提高上传带宽
- 下一篇: antd 表单域验证规则 - 只能输入数