DH-SRPG 四:?jiǎn)挝还芾砼c控制器
UnitManage是用于管理游戲中的Unit的節(jié)點(diǎn)。
它的功能囊括了:?jiǎn)挝徊檎?、單位移?dòng)戰(zhàn)斗處理、游戲回合管理,單位行動(dòng)順序等。
在新建關(guān)卡時(shí),可以直接在UnitManage節(jié)點(diǎn)下添加Unit節(jié)點(diǎn)。
UnitManage
回合部分
屬性:
方法:
構(gòu)成回合的方法并不復(fù)雜。
實(shí)現(xiàn)是 start 這個(gè)方法作為開(kāi)始由 Scene 調(diào)用,這個(gè)方法實(shí)現(xiàn)會(huì)獲取自己的所有子節(jié)點(diǎn),也就是在場(chǎng)景編輯器中添加的unit和玩家挑選出戰(zhàn)的那些unit.
start會(huì)將他們添加到行動(dòng)列表里并完成信號(hào)的連接。然后調(diào)用settlement對(duì)unit進(jìn)行排序再調(diào)用 cycle 開(kāi)始回合的循環(huán)。
cycle 會(huì)獲取下一個(gè)要行動(dòng)的unit并讓unit開(kāi)始行動(dòng)。
unit在結(jié)束行動(dòng)時(shí)會(huì)發(fā)出 sction_end_signal 信號(hào),我們讓這個(gè)信號(hào)連接到 unit_action_end 方法,并在 cycle 方法中會(huì)再一次調(diào)用 cycle.這樣就形成一個(gè)循環(huán)了。
get_next_unit 在獲取到最后一個(gè)unit之后再調(diào)用時(shí)會(huì)調(diào)用 settlement 對(duì)行動(dòng)列表行動(dòng)順序進(jìn)行更新。
管理部分
屬性:
在游戲中被擊敗的unit并不會(huì)直接被析構(gòu)掉,而是保存到 cemetery 之中。
cemetery本身沒(méi)有什么用,只是以后可能會(huì)有讓unit再次戰(zhàn)斗的技能才搞的。
方法:
可以通過(guò)多種方式獲取unit
unit 在被擊敗時(shí)會(huì)調(diào)用這個(gè)方法來(lái)料理后事

Controllers
其實(shí)在調(diào)用 unit 的 start_action 時(shí) unit 還會(huì)調(diào)用 controllers 的 unit_start_action,因?yàn)槿绻?ai 的話,會(huì)很需要這個(gè)。而玩家就不需要了。
屬性與方法
因?yàn)樾枰貙?xiě),所以很多方法都是 pass.
值得注意的是,控制器的 camp 屬性。這個(gè)屬性可以用于區(qū)分?jǐn)澄遥m然unit可以攻擊自己人)不過(guò)相同camp的unit在移動(dòng)時(shí)是可以穿過(guò)的(也就是不會(huì)攔路),而不同的camp之間會(huì)互相攔路。

下一節(jié)我們將介紹一下單位Unit。
致歉:因?yàn)轫?xiàng)目的更新隨時(shí)都有可能會(huì)破壞原有的代碼,您在看到此文時(shí)它可能已經(jīng)不是最新的了,請(qǐng)以現(xiàn)在項(xiàng)目的具體情況為準(zhǔn)。
歡迎大家給項(xiàng)目提Issues
項(xiàng)目地址:https://gitee.com/DH-DoveG/dh-srpg-demo