
文章插圖
之前我們為大家帶來了守望先鋒地圖工坊的零基礎入門教程 , 而今天 , 為大家帶來的是玩家“瀧涯”編寫的守望先鋒地圖工坊進階教程 , 一起來看看吧 。

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

文章插圖
換做游戲內規則 , 即是:(假設用玩家變量A表示等級 , 玩家變量B表示經驗)
1.擊殺敵人:修改玩家變量(事件玩家, B, 加, 50)
2.摧毀防御塔:修改玩家變量(事件玩家, B, 加, 30)
3.死亡:修改玩家變量(事件玩家, B, 減, 50)
觀察者1
1.事件:持續 - 每名玩家
2.條件:玩家變量(事件玩家, B) >= 100
3.動作:
修改玩家變量(事件玩家, B, 減, 100)
修改玩家變量(事件玩家, A, 加, 1)
// 這里寫等級變化的邏輯
相關經驗推薦
- 守望先鋒鍵盤彈鋼琴攻略 守望先鋒地圖工坊鍵盤彈鋼琴代碼分享
- 守望先鋒地圖工坊warframe戰甲技能代碼分享 守望先鋒星際戰甲玩法攻略
- 守望先鋒地圖工坊超級死斗代碼分享 守望先鋒超級死斗怎么玩
- 守望先鋒地圖工坊傳火玩法代碼分享 守望先鋒地圖工坊傳火怎么玩
- 守望先鋒地圖工坊秩序之光塔防新版攻略 秩序之光塔防代碼分享
- 守望先鋒回放系統介紹 守望先鋒回放怎么看
- 守望先鋒贊賞等級有什么用 守望先鋒贊賞等級獎勵介紹
- 守望先鋒回放怎么看 守望先鋒回放功能介紹
- 守望先鋒地圖工坊路霸的娃娃機是什么 地圖工坊娃娃機玩法
- 守望先鋒6月19日更新內容介紹 守望先鋒6月19日更新了什么
