日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

守望先鋒地圖工坊應(yīng)用觀察者模式思想教程 地圖工坊進(jìn)階教程


守望先鋒地圖工坊應(yīng)用觀察者模式思想教程 地圖工坊進(jìn)階教程


之前我們?yōu)榇蠹規(guī)砹耸赝蠕h地圖工坊的零基礎(chǔ)入門教程 , 而今天 , 為大家?guī)淼氖峭婕?ldquo;瀧涯”編寫的守望先鋒地圖工坊進(jìn)階教程 , 一起來看看吧 。
【守望先鋒地圖工坊應(yīng)用觀察者模式思想教程 地圖工坊進(jìn)階教程】
守望先鋒地圖工坊應(yīng)用觀察者模式思想教程 地圖工坊進(jìn)階教程


推薦閱讀:
守望先鋒地圖工坊零基礎(chǔ)入門新手教程
守望先鋒地圖工坊應(yīng)用觀察者模式思想教程
本文的目標(biāo)對象 , 是已經(jīng)有一定地圖工坊編寫經(jīng)驗的朋友 。如果你并不熟悉 , 建議你閱讀其他教程 。
引言?
相對于一門編程語言來說 , 地圖工坊的功能其實非?;A(chǔ) 。它沒有函數(shù) , 更別提類了 。不過 , 不知道你是否注意到 , 持續(xù)事件有一個特性:它可以持續(xù)等待 , 直到條件為真 。
編程里面有一個“設(shè)計模式” , 叫做“觀察者模式” 。它的意思是:當(dāng)一個對象變化時 , 會自動通知依賴它的對象 。
看到這里 , 不知道你有沒有覺得 , 持續(xù)事件和觀察者模式是有一定相似之處的:它們都是在“等”一個東西 。
簡化規(guī)則
這個東西有什么用?我們可以借此來簡化規(guī)則的編寫 。例如 , 我們要做一個等級系統(tǒng) , 當(dāng)經(jīng)驗達(dá)到100的時候就升一級 , 死亡的時候就掉50%經(jīng)驗 , 如果經(jīng)驗是負(fù)了 , 就掉一級 。
我們的經(jīng)驗來源可能不止一種 , 例如在RPG模式里 , 我們擊殺敵人可以獲得經(jīng)驗 , 摧毀防御塔也可以獲得經(jīng)驗 。當(dāng)我們用傳統(tǒng)辦法寫規(guī)則的時候 , 我們就需要:
1.擊殺敵人:增加經(jīng)驗 , 如果經(jīng)驗>100 , 增加等級 , 修改等級BUFF
2.摧毀防御塔:增加經(jīng)驗 , 如果經(jīng)驗>100 , 增加等級 , 修改等級BUFF
3.死亡:減少經(jīng)驗 , 如果經(jīng)驗<0 , 減少等級 , 修改等級BUFF
你有沒有覺得 , 這是一個繁瑣的過程?當(dāng)你需要修改等級BUFF的時候 , 你需要修改很多條規(guī)則 。
我們再分析一下我們的邏輯:實際上 , 等級什么時候會增加 , 增加會有什么效果 , 這并不是我們的“死亡”事件該處理的 。
正確的做法是:有一個東西在“看著”經(jīng)驗 , 當(dāng)它大于100時 , 就代表升級了 。當(dāng)它小于100時 , 就代表降級了 。我們將其解耦后 , 規(guī)則就變成了:
1.擊殺敵人:增加經(jīng)驗
2.摧毀防御塔:增加經(jīng)驗
3.死亡:減少經(jīng)驗
4.觀察者1:如果經(jīng)驗>100 , 增加等級 , 修改等級BUFF
5.觀察者2:如果經(jīng)驗<0 , 減少等級 , 修改等級BUFF
守望先鋒地圖工坊應(yīng)用觀察者模式思想教程 地圖工坊進(jìn)階教程


換做游戲內(nèi)規(guī)則 , 即是:(假設(shè)用玩家變量A表示等級 , 玩家變量B表示經(jīng)驗)
1.擊殺敵人:修改玩家變量(事件玩家, B, 加, 50)
2.摧毀防御塔:修改玩家變量(事件玩家, B, 加, 30)
3.死亡:修改玩家變量(事件玩家, B, 減, 50)

觀察者1
1.事件:持續(xù) - 每名玩家
2.條件:玩家變量(事件玩家, B) >= 100
3.動作:
修改玩家變量(事件玩家, B, 減, 100)

推薦閱讀