手機(jī)游戲> 守望先鋒手游> 游戲攻略> 綜合篇> 《守望先鋒》地圖工坊教程
《守望先鋒》地圖工坊教程
守望先鋒是一款非?;鸨腇PS加MOBA的結(jié)合類游戲,游戲的人物設(shè)定精美,玩法緊張刺激,同時(shí)售價(jià)也不高,一經(jīng)推出就收到了非常大的歡迎。很多玩家不知道守望先鋒地圖工坊教程,來看看地圖工坊怎么用。
《守望先鋒》地圖工坊教程
本文的目標(biāo)對象,是已經(jīng)有一定地圖工坊編寫經(jīng)驗(yàn)的朋友。如果你并不熟悉,建議你閱讀其他教程。例如:
[零基礎(chǔ)入門教程]
[在地圖工坊中從零開始創(chuàng)造“生化模式”]
引言
相對于一門編程語言來說,地圖工坊的功能其實(shí)非?;A(chǔ)。它沒有函數(shù),更別提類了。不過,不知道你是否注意到,持續(xù)事件有一個(gè)特性:它可以持續(xù)等待,直到條件為真。
編程里面有一個(gè)“設(shè)計(jì)模式”,叫做“觀察者模式”。它的意思是:當(dāng)一個(gè)對象變化時(shí),會自動通知依賴它的對象。
看到這里,不知道你有沒有覺得,持續(xù)事件和觀察者模式是有一定相似之處的:它們都是在“等”一個(gè)東西。
簡化規(guī)則
這個(gè)東西有什么用?我們可以借此來簡化規(guī)則的編寫。例如,我們要做一個(gè)等級系統(tǒng),當(dāng)經(jīng)驗(yàn)達(dá)到100的時(shí)候就升一級,死亡的時(shí)候就掉50%經(jīng)驗(yàn),如果經(jīng)驗(yàn)是負(fù)了,就掉一級。
我們的經(jīng)驗(yàn)來源可能不止一種,例如在RPG模式里,我們擊殺敵人可以獲得經(jīng)驗(yàn),摧毀防御塔也可以獲得經(jīng)驗(yàn)。當(dāng)我們用傳統(tǒng)辦法寫規(guī)則的時(shí)候,我們就需要:
擊殺敵人:增加經(jīng)驗(yàn),如果經(jīng)驗(yàn)>100,增加等級,修改等級BUFF
摧毀防御塔:增加經(jīng)驗(yàn),如果經(jīng)驗(yàn)>100,增加等級,修改等級BUFF
死亡:減少經(jīng)驗(yàn),如果經(jīng)驗(yàn)<0,減少等級,修改等級BUFF
你有沒有覺得,這是一個(gè)繁瑣的過程?當(dāng)你需要修改等級BUFF的時(shí)候,你需要修改很多條規(guī)則。
我們再分析一下我們的邏輯:實(shí)際上,等級什么時(shí)候會增加,增加會有什么效果,這并不是我們的“死亡”事件該處理的。
正確的做法是:有一個(gè)東西在“看著”經(jīng)驗(yàn),當(dāng)它大于100時(shí),就代表升級了。當(dāng)它小于100時(shí),就代表降級了。我們將其解耦后,規(guī)則就變成了:
擊殺敵人:增加經(jīng)驗(yàn)
摧毀防御塔:增加經(jīng)驗(yàn)
死亡:減少經(jīng)驗(yàn)
觀察者1:如果經(jīng)驗(yàn)>100,增加等級,修改等級BUFF
觀察者2:如果經(jīng)驗(yàn)<0,減少等級,修改等級BUFF
換做游戲內(nèi)規(guī)則,即是:(假設(shè)用玩家變量A表示等級,玩家變量B表示經(jīng)驗(yàn))
擊殺敵人:修改玩家變量(事件玩家, B, 加, 50)
摧毀防御塔:修改玩家變量(事件玩家, B, 加, 30)
死亡:修改玩家變量(事件玩家, B, 減, 50)
觀察者1
事件:持續(xù) - 每名玩家
條件:玩家變量(事件玩家, B) >= 100
動作:
修改玩家變量(事件玩家, B, 減, 100)
修改玩家變量(事件玩家, A, 加, 1)
// 這里寫等級變化的邏輯
等待(0.016, 無視條件)
如條件為“真”則循環(huán)
觀察者2
事件:持續(xù) - 每名玩家
條件:玩家變量(事件玩家, B) < 0
動作:
修改玩家變量(事件玩家, B, 加, 100)
修改玩家變量(事件玩家, A, 減, 1)
// 這里寫等級變化的邏輯
等待(0.016, 無視條件)
如條件為“真”則循環(huán)
注意:
一定要注意邏輯設(shè)計(jì)上不能存在死循環(huán),例如上面的例子里,觀察者2的條件不能寫“玩家變量 <= 0”。因?yàn)楫?dāng)玩家經(jīng)驗(yàn)=100時(shí),觀察者1會將其變?yōu)?,就會觸發(fā)觀察者2。而觀察者2又會再次觸發(fā)觀察者1。這就導(dǎo)致了死循環(huán)的出現(xiàn)。
我們在兩個(gè)觀察者最后都加上了循環(huán),目的是打破條件滿足的情況??紤]這種情況:當(dāng)我們一次性給玩家增加300點(diǎn)經(jīng)驗(yàn)時(shí),按理來說,應(yīng)該讓玩家升3級,但因?yàn)槲覀儧]有循環(huán),玩家升了一級就結(jié)束了,并且后續(xù)增加經(jīng)驗(yàn),也不會再觸發(fā)升級。只有當(dāng)條件滿足被打破時(shí),條件再次滿足,才會再次觸發(fā)該規(guī)則。
模擬函數(shù)調(diào)用
編程總是免不了函數(shù),但目前為止OW中沒有函數(shù)。但是,我們可以使用上面的方法,來模擬函數(shù)。
還是用上面的例子。你會發(fā)現(xiàn)我們的等級變化邏輯還是寫了兩遍。我們能不能再將其獨(dú)立成一個(gè)規(guī)則?當(dāng)然是可以的。我們變化的目標(biāo)是玩家,因此我們需要使用一個(gè)玩家變量,來標(biāo)記我們需不需要對此玩家執(zhí)行等級變化邏輯。假設(shè)我們使用玩家變量C。
首先,在游戲初始化的時(shí)候,將其設(shè)置為假。我們的規(guī)則就可以變成:
觀察者1
事件:持續(xù) - 每名玩家
條件:玩家變量(事件玩家, B) >= 100
動作:
修改玩家變量(事件玩家, B, 減, 100)
修改玩家變量(事件玩家, A, 加, 1)
等待(0.016, 無視條件)
如條件為“真”則循環(huán)
設(shè)置玩家變量(事件玩家, C, 真)
觀察者2
事件:持續(xù) - 每名玩家
條件:玩家變量(事件玩家, B) < 0
動作:
修改玩家變量(事件玩家, B, 加, 100)
修改玩家變量(事件玩家, A, 減, 1)
等待(0.016, 無視條件)
如條件為“真”則循環(huán)
設(shè)置玩家變量(事件玩家, C, 真)
等級變化規(guī)則
事件:持續(xù) - 每名玩家
條件:玩家變量(事件玩家, C) == 真
動作:
// 這里寫等級變化的邏輯
設(shè)置玩家變量(事件玩家, C, 假)
注意:這里只是模擬函數(shù)調(diào)用,但實(shí)際上它比函數(shù)還是少很多東西。因此,并不是所有情況都適合這樣寫。
總結(jié)
本文其實(shí)并沒有用什么很稀奇古怪的技術(shù),但本文的難點(diǎn)是思路的轉(zhuǎn)變:你需要將幾個(gè)本來不相同的邏輯,找出他們的共同點(diǎn),并巧妙的將其拆分成多個(gè)邏輯,然后用規(guī)則來實(shí)現(xiàn)。
到底要不要使用這種方式來設(shè)計(jì)規(guī)則?你需要考慮它的優(yōu)缺點(diǎn)。它的優(yōu)點(diǎn)有:
將重復(fù)的內(nèi)容獨(dú)立出來,減少工作量。
方便以后的修改(不僅需要修改的地方少了,漏改的可能性也更小了)
它也有缺點(diǎn):
增加了規(guī)則數(shù)量。
增加了邏輯上的復(fù)雜度。
運(yùn)行效率稍低。
個(gè)人認(rèn)為,適當(dāng)?shù)氖褂眠@種思路來設(shè)計(jì)規(guī)則,可以減少你的工作量和維護(hù)難度。但并不代表這種方式一定就是最好的,你應(yīng)當(dāng)考慮你的實(shí)際情況。
玩家評論
(3746條)相關(guān)閱讀
最新文章
- 《守望先鋒》P5聯(lián)動選角引爭議 D.va為啥不選雙葉
- 季中更新驚喜不止,《守望先鋒》第18賽季精彩連連
- 《守望先鋒》P5聯(lián)動選擇遭質(zhì)疑!D.va為什么不是雙葉?
- 《守望先鋒》P5聯(lián)動選擇遭質(zhì)疑!D.va為什么不是雙葉?
- 酷斃了 暴雪在各地展示《守望先鋒》巨型可動手辦
- 暴雪擱置《守望先鋒》背景小說開發(fā)計(jì)劃 另有它意
- 《守望先鋒》綠洲城游覽指南
- 《守望先鋒》加入魅力角色被質(zhì)疑跟風(fēng) 設(shè)計(jì)師回應(yīng)來了
- 《守望先鋒》第18賽季即將來襲,大量新內(nèi)容帶來翻天覆地新變化
- 暴雪 《守望先鋒》新英雄“無漾”將重新選人配音
- 《守望先鋒》18賽季皮膚公布 夏日海濱和街頭風(fēng)格
- 《守望先鋒》×NERF聯(lián)動 7個(gè)英雄的武器變塑料玩具
- 《守望先鋒》加入魅力角色被質(zhì)疑跟風(fēng) 設(shè)計(jì)師回應(yīng)來了
- 反代反炸 《守望先鋒》國服游戲體驗(yàn)改進(jìn)計(jì)劃第二期揭曉
- 《守望先鋒》P5聯(lián)動選角引爭議 D.va為啥不選雙葉
- 季中更新驚喜不止,《守望先鋒》第18賽季精彩連連
- 《守望先鋒》P5聯(lián)動選擇遭質(zhì)疑!D.va為什么不是雙葉?
- 《守望先鋒》P5聯(lián)動選擇遭質(zhì)疑!D.va為什么不是雙葉?
- 酷斃了 暴雪在各地展示《守望先鋒》巨型可動手辦
- 暴雪擱置《守望先鋒》背景小說開發(fā)計(jì)劃 另有它意
- 《守望先鋒》綠洲城游覽指南
- 《守望先鋒》加入魅力角色被質(zhì)疑跟風(fēng) 設(shè)計(jì)師回應(yīng)來了
- 《守望先鋒》第18賽季即將來襲,大量新內(nèi)容帶來翻天覆地新變化
- 暴雪 《守望先鋒》新英雄“無漾”將重新選人配音
- 《守望先鋒》18賽季皮膚公布 夏日海濱和街頭風(fēng)格
- 《守望先鋒》×NERF聯(lián)動 7個(gè)英雄的武器變塑料玩具
- 《守望先鋒》加入魅力角色被質(zhì)疑跟風(fēng) 設(shè)計(jì)師回應(yīng)來了
- 反代反炸 《守望先鋒》國服游戲體驗(yàn)改進(jìn)計(jì)劃第二期揭曉
守望先鋒

守望先鋒國際服 是一款動作游戲,有著不同的玩法,讓玩家可以選擇不同的游戲模式進(jìn)行戰(zhàn)斗,可以選擇團(tuán)戰(zhàn),也可以選擇個(gè)人比賽,讓玩家體驗(yàn)控制英雄參與戰(zhàn)斗的操作玩法有清爽的戰(zhàn)斗內(nèi)容,帶來刺激元素。有需要的朋友快來下載使用吧!
豌豆t8397i 來自于 九游APP 2025-09-14 09:49
不知道有沒有人還記得吳宏于
豌豆d20ool 來自于 九游APP 2025-08-12 16:47
我看到一個(gè)非常帥氣的英雄,看著就手感非常的好玩不知道幾月幾號上線如果上了的話我體驗(yàn)一下。我感覺嘛,他肯定很有創(chuàng)意。
豌豆e4toog 來自于 九游APP 2025-08-30 15:28
什么時(shí)候上線啊啊啊啊啊啊啊
玩家75840333 來自于 九游APP 2025-06-09 20:25
什么時(shí)候上線啊,快點(diǎn)上線吧,我好想玩啊
豌豆a1xkti 來自于 九游APP 2025-03-23 12:17
快點(diǎn)出吧,我是真想玩
九游玩家401573411 來自于 九游APP 2017-07-15 20:27
想要馬上玩手機(jī)版的守望先鋒的點(diǎn)贊。我不是騙贊的我只想知道守望先鋒有幾個(gè)人在玩。
豌豆3h3ufr 來自于 九游APP 2025-02-03 20:34
哈哈,我從19年預(yù)約沒想到打開評論區(qū)還有怎么多人等。
源滅斬 來自于 九游APP 2020-05-18 22:58
本人守望迷,但是我相信手機(jī)不會出的,至少要等幾年,現(xiàn)在守望先鋒在退出守望2,沒有時(shí)間做手游,況且暴雪并不怎么支持手游,手游里只有一個(gè)爐石傳說,剩下的在現(xiàn)在的手機(jī)上很難做出來。模型就是一個(gè)問題。不過手游上有一些盜版守望先鋒,質(zhì)量并不怎么好比如說:王牌特工。但是還是期待守望先鋒出手游版。但是我有端游了,不會在特別在意。。。
九游玩家7lyv14hp3tnw 來自于 九游APP 2020-01-23 21:20
預(yù)約等不起的別酸,要么去買個(gè)電腦配置,花點(diǎn)小錢買個(gè)正版,好好打上一把不行??酸您媽呢,等不起去買啊,人家愛怎么出怎么出管得著么??刷存在感真是??
能在我刀下活過三秒? 來自于 九游APP 2020-08-31 18:54
上帝:我可以實(shí)現(xiàn)你一個(gè)愿望 我:我要?dú)缡澜? 上帝:說個(gè)實(shí)際點(diǎn)的 我:我要《守望先鋒》出手游 上帝:我們還是談?wù)剼缡澜绨?/p>