日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分享:游戏新手引导程序框架设计3要点

發(fā)布時間:2024/8/26 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分享:游戏新手引导程序框架设计3要点 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

新手引導確實是個麻煩事,邏輯雜亂,而且跟界面的邏輯常常交叉在一塊,弄的不好的話代碼里到處都是if else,保存各種臨時狀態(tài)變量。但這里面其實也是有規(guī)律可循的,不說完美解決了所有問題,但至少可以提供一個框架,一種問題解決的思路。這里面有3個關注點:

1.引導的觸發(fā)點

2.引導的進度

3.引導的表現(xiàn)內(nèi)容

傳統(tǒng)的方案實際上也是在解決這3個問題,只不過用的是生硬粗暴的硬插的方式去編寫代碼,代價是容易出現(xiàn)bug,不好維護,而且?guī)缀醪豢蓮陀谩?br />
就像把狀態(tài)機轉(zhuǎn)化為行為樹一樣,思想上需求去抽象各個點,然后讓它們有機組合起來,形成一個模塊,加入說是新手引導模塊。

假設這個模塊叫做Guide,下面分別闡述以上3個問題的解決方式。

1.新手引導的觸發(fā)點,一般新手引導是在界面切換后發(fā)生的,那比如這個界面有個OnEnter,那一般界面都會有一個基類,所以我們可以在這個基類的OnEnter里注入一句Guide::Instance().Trigger(...界面名稱等參數(shù)),當然我們也可以在其他界面統(tǒng)一調(diào)度的地方去調(diào)用這個Trigger。有時候也可能需要在游戲幀里去調(diào)用Guide::Instance().Update(dt)。這一點上,不一樣的地方在于以前是硬在各個界面里寫觸發(fā),現(xiàn)在是在統(tǒng)一的地方寫,數(shù)量上明顯少了。

有觸發(fā)入口了,然后到底是否要觸發(fā)引導?這個時候就需要Guide里維護一個Trigger列表,簡單比如說是List<ITrigger*>,每一個ITrigger上有一個斷言方法bool CheckCondition(...參數(shù)自己定),這樣簡單來說,你只要遍歷這個Trigger列表的CheckCondition方法,就可以實現(xiàn)條件觸發(fā)了。而里面的CheckCondition的實現(xiàn),簡單的可以直接查詢Player的屬性來定(比如說到10級才觸發(fā)),或者當前判斷當前是在什么界面,復雜的甚至可以用IPredicate,AddPredicate,OrPredicate,NotPredicate來實現(xiàn)一棵條件判斷樹,也可以觸發(fā)腳本。游戲在啟動的時候會通過配置或腳本加載這么一個trigger列表,已經(jīng)觸發(fā)的Trigger可以從列表中刪掉。

ITrigger想要實現(xiàn)的話可以支持嵌套,變成一棵跟行為樹一樣的結構。

2. 引導的進度,有些引導進度是根據(jù)玩家屬性相關的,比如手游賬號買賣平臺玩家等級,這個不需要專門保存。而有些引導步驟進度通常需要保存,這些可以在服務器數(shù)據(jù)庫(網(wǎng)游)或客戶端存檔(單機的話)保存一個引導表,每一行有引導Id(對應Trigger),進度Index,再附加內(nèi)容。已經(jīng)完成的引導可以從玩家上標記。如果只支持引導按序觸發(fā)的話,那玩家身上可以保存一個當前引導Id,可以加快不少效率。如果支持非線性觸發(fā),那就從引導記錄上做標記也可。

3.引導的表現(xiàn)內(nèi)容,一般引導的內(nèi)容就是切換界面,禁止一些按鈕等等,這個在ITrigger的Run里來實現(xiàn),可以由你發(fā)揮了,看是直接在里面寫UI或者觸發(fā)腳本什么的。

這樣下來,就把引導的邏輯和界面邏輯隔離開了,不過實際上因為引導是強關聯(lián)到界面的行為的,所以在實現(xiàn)引導的時候,也經(jīng)常需要獲取當前界面的某個按鈕等等操作,不過至少清晰可維護。

總結

以上是生活随笔為你收集整理的分享:游戏新手引导程序框架设计3要点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。