【蔚藍(lán)】一起來(lái)讀蔚藍(lán)源代碼(一)
剛開(kāi)始寫code mod(主要是在給我的圖做一個(gè)奇怪的泡泡實(shí)體),順便翻翻源碼做點(diǎn)筆記。下面就是各種代碼塊以及我加的中文注釋。本文并不是 coder 向的,把代碼當(dāng)英文和數(shù)學(xué)公式看就行。讀得有點(diǎn)匆忙,如果有不準(zhǔn)確的地方歡迎指正。左躺.jpg
這次看的代碼主要是和 bubble hyper 相關(guān)的(包含進(jìn)泡泡的流程)。
Ok. 那么這個(gè)?SuperJump 是在哪里被調(diào)用的呢?一定是在沖刺狀態(tài)對(duì)吧:
好,接下來(lái)是泡泡相關(guān)的代碼。注意到泡泡(即booster)有一個(gè)單獨(dú)的狀態(tài)代碼4,如果我們自己寫的泡泡把狀態(tài)設(shè)到4,就能復(fù)用下面的代碼:
可以看到綠泡泡的沖刺和正常的沖刺一樣都是走狀態(tài) 2 的,這也是為什么出泡泡的凌波、蹭墻等都和原來(lái)的一樣。當(dāng)然還有一些 Booster 類里面還有一些函數(shù)和 Coroutine,比如?PlayerBoosted 和 BoostRoutine 對(duì)狀態(tài) 2 的普通沖刺進(jìn)行一些伴隨調(diào)整(比如粒子特效)。
基本上寫新 Booster 的話,把現(xiàn)成的 Booster 類拿過(guò)來(lái)改會(huì)比較好,這樣復(fù)用大部分代碼。PlayerBoosted 和 BoostRoutine 可以改成自己想要的計(jì)算方式。
比較坑的一點(diǎn)是對(duì)于 bubble hyper 的處理。如果瞬發(fā) hyper,可能?BoostRoutine 會(huì)在 superJump 后面執(zhí)行。這個(gè)時(shí)候算是無(wú)效更新了,因?yàn)?booster 已經(jīng)結(jié)束了,如果還是按之前的邏輯會(huì)覆蓋掉 hyper 和 super 設(shè)定好的速度。判斷方式可以是 dashDir 是不是 0,因?yàn)?DashCoroutine 是負(fù)責(zé)更新 dashDir?的,如果瞬發(fā)是執(zhí)行不到那里的。