自己的引擎 - 10 燃燒吧,連鎖反應的實現


3樓貓 發佈時間:2025-01-19 15:05:32 作者:玩家78123443 Language

所謂點燃,我們可以理解為範圍響應 。

自己的引擎 - 10 燃燒吧,連鎖反應的實現-第0張

接觸既點燃

首先要有範圍距離的概念。

自己的引擎 - 10 燃燒吧,連鎖反應的實現-第1張

如何實現距離範圍內的進行響應呢? 我們這樣做,以當前實體位置 為原點,以想要響應的距離為半徑。 繪製一個範圍,那麼範圍內的所有實體都執行一個特定方法。

自己的引擎 - 10 燃燒吧,連鎖反應的實現-第2張

範圍內接觸的物體

比如 燃燒方法(執行了那麼當前實體就燃燒) 也就是說範圍內具有這個方法的實體就觸發這個方法,實現點燃。 白話說,這個圈裡的物體,能點燃的都開始燃燒吧。

自己的引擎 - 10 燃燒吧,連鎖反應的實現-第3張

大範圍內點燃

被點燃的也以當前作為原點畫圈 返回範圍內物體。。。。鏈式反應

這樣就實現了一個廣播方式通知所有相鄰的可燃燒的實體,燃燒吧。

當然 ,燃燒只是屬性改變及表現。

自己的引擎 - 10 燃燒吧,連鎖反應的實現-第4張

不能燃燒的就不會燃燒

這個邏輯實現後。我們可以做任何功能實現,比如燃燒,連鎖破碎等。

那麼還有一個問題。就是這種傳播邏輯是一個循環內實現的。

一下都觸發了!這樣是不行的。  我們可以給觸發做一些條件限制,以及延時觸發邏輯。

所謂延時觸發,就是一個時間變量做為計時器基礎。不斷的幀循環內對這個記時數據做減法。

直到為零的時候,就啟動本身對周圍物體的傳染邏輯。

燃燒性能測試

這樣做之後,我們就實現了延時點燃,以及每次只點燃兩個沒有燃燒的實體。

最終實現 放火燒山的玩法。

自己的引擎 - 10 燃燒吧,連鎖反應的實現-第5張

全燒光光

至於火這個概念本身就有傷害屬性。

自己的引擎 - 10 燃燒吧,連鎖反應的實現-第6張

再燒一次螃蟹 

所以可以火攻這種策略玩法。

自己的引擎 - 10 燃燒吧,連鎖反應的實現-第7張

快速清場

那麼下次我們聊聊如果用固定的事物實現簡單的機關。

比如 熱蒸汽無法通過,只能先去關掉它。

自己的引擎 - 10 燃燒吧,連鎖反應的實現-第8張

蒸汽牆

本日誌不定時更新哈。直到引擎完善,會出視頻教程。 請關注哈。


© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com