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

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


修改玩家變量(事件玩家, A, 加, 1)
// 這里寫等級(jí)變化的邏輯
等待(0.016, 無視條件)
如條件為“真”則循環(huán)

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


觀察者2
1.事件:持續(xù) - 每名玩家
2.條件:玩家變量(事件玩家, B) < 0
3.動(dòng)作:
修改玩家變量(事件玩家, B, 加, 100)
修改玩家變量(事件玩家, A, 減, 1)
// 這里寫等級(jí)變化的邏輯
等待(0.016, 無視條件)
如條件為“真”則循環(huán)
注意:
一定要注意邏輯設(shè)計(jì)上不能存在死循環(huán) , 例如上面的例子里 , 觀察者2的條件不能寫“玩家變量 <= 0” 。因?yàn)楫?dāng)玩家經(jīng)驗(yàn)=100時(shí) , 觀察者1會(huì)將其變?yōu)? , 就會(huì)觸發(fā)觀察者2 。而觀察者2又會(huì)再次觸發(fā)觀察者1 。這就導(dǎo)致了死循環(huán)的出現(xiàn) 。
我們?cè)趦蓚€(gè)觀察者最后都加上了循環(huán) , 目的是打破條件滿足的情況 ??紤]這種情況:當(dāng)我們一次性給玩家增加300點(diǎn)經(jīng)驗(yàn)時(shí) , 按理來說 , 應(yīng)該讓玩家升3級(jí) , 但因?yàn)槲覀儧]有循環(huán) , 玩家升了一級(jí)就結(jié)束了 , 并且后續(xù)增加經(jīng)驗(yàn) , 也不會(huì)再觸發(fā)升級(jí) 。只有當(dāng)條件滿足被打破時(shí) , 條件再次滿足 , 才會(huì)再次觸發(fā)該規(guī)則 。
守望先鋒地圖工坊應(yīng)用觀察者模式思想教程 地圖工坊進(jìn)階教程



模擬函數(shù)調(diào)用
編程總是免不了函數(shù) , 但目前為止OW中沒有函數(shù) 。但是 , 我們可以使用上面的方法 , 來模擬函數(shù) 。
還是用上面的例子 。你會(huì)發(fā)現(xiàn)我們的等級(jí)變化邏輯還是寫了兩遍 。我們能不能再將其獨(dú)立成一個(gè)規(guī)則?當(dāng)然是可以的 。我們變化的目標(biāo)是玩家 , 因此我們需要使用一個(gè)玩家變量 , 來標(biāo)記我們需不需要對(duì)此玩家執(zhí)行等級(jí)變化邏輯 。假設(shè)我們使用玩家變量C 。
首先 , 在游戲初始化的時(shí)候 , 將其設(shè)置為假 。我們的規(guī)則就可以變成:
觀察者1
1.事件:持續(xù) - 每名玩家
2.條件:玩家變量(事件玩家, B) >= 100
3.動(dòng)作:
修改玩家變量(事件玩家, B, 減, 100)
修改玩家變量(事件玩家, A, 加, 1)
等待(0.016, 無視條件)
如條件為“真”則循環(huán)
設(shè)置玩家變量(事件玩家, C, 真)
守望先鋒地圖工坊應(yīng)用觀察者模式思想教程 地圖工坊進(jìn)階教程


觀察者2
1.事件:持續(xù) - 每名玩家
2.條件:玩家變量(事件玩家, B) < 0
3.動(dòng)作:
修改玩家變量(事件玩家, B, 加, 100)
修改玩家變量(事件玩家, A, 減, 1)
等待(0.016, 無視條件)
如條件為“真”則循環(huán)
設(shè)置玩家變量(事件玩家, C, 真)
等級(jí)變化規(guī)則
1.事件:持續(xù) - 每名玩家
2.條件:玩家變量(事件玩家, C) == 真
3.動(dòng)作:
// 這里寫等級(jí)變化的邏輯
設(shè)置玩家變量(事件玩家, C, 假)
注意:這里只是模擬函數(shù)調(diào)用 , 但實(shí)際上它比函數(shù)還是少很多東西 。因此 , 并不是所有情況都適合這樣寫 。
守望先鋒地圖工坊應(yīng)用觀察者模式思想教程 地圖工坊進(jìn)階教程


總結(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ú)立出來 , 減少工作量 , 方便以后的修改(不僅需要修改的地方少了 , 漏改的可能性也更小了) 。

推薦閱讀