如何用 Creator 快速合成大西瓜?
撇開這兩天掛在熱搜上的負(fù)面不談,這個(gè)游戲本身還是有許多可探討的空間,畢竟技術(shù)永遠(yuǎn)可以學(xué)習(xí),更何況《合成大西瓜》這款游戲還是用 Cocos Creator 開發(fā)的,得廢寢忘食地學(xué)!
尤其昨天還發(fā)布了 Cocos Creator 3.0 正式版,建議錯(cuò)過的朋友點(diǎn)擊閱讀,它值得你一個(gè)轉(zhuǎn)發(fā)。
經(jīng)過幾天的探索,社區(qū)許多同學(xué)對這款游戲的理解已經(jīng)走在了時(shí)代的前沿。今天 B 站活躍 Up 主就攜項(xiàng)目代碼來給大家講解一下大西瓜的游戲制作思路,看完也許你春節(jié)假期就有事做了
。
以下投稿來自 Nowpaper,歡迎閱讀!
合成大西瓜
大家好,我是 B 站 up 主 Nowpaper,互聯(lián)網(wǎng)上突然起了瓜風(fēng),各種大西瓜飄來飄去凌亂眼花,作為吃瓜運(yùn)動(dòng)積極份子,怎么能輕易放過?抓緊時(shí)間,咱們也吃一口。
合成大西瓜的玩法非常簡單,丟下隨機(jī)生成的水果,二合一逐步升級,最終合成“大西瓜”。在開發(fā)群里,一幫人還在探討這個(gè)游戲的時(shí)候,我不合時(shí)宜的說一句:就這?我大概倆小時(shí)就開發(fā)一個(gè)。
群里的突然沉默,讓我頓時(shí)緊張了起來,是隔著屏幕唏噓不已?還是狂笑我不自量力?切,我是誰?讓你們見見中年老男人的厲害。
當(dāng)晚草草吃了飯,開啟了直播,大約兩個(gè)多小時(shí),用 Cocos Creator 完成了《合成大西瓜》第一個(gè)版本,還原度 80%。
我開直播只是證明,這游戲開發(fā)出來很容易,沒想到這個(gè)舉動(dòng)引來好多人的圍觀,瞬間漲粉好幾十,高興地嘮嗑到了 12 點(diǎn)半。

你們是不是覺得特牛掰,特大神,其實(shí)依賴于 Cocos Creator 快速開發(fā)的特性,這事任何人都能做到。不信,你順著我這個(gè)思路看下去就知道了。
任何游戲的開發(fā)工作量可以分為核心工作量和附加工作量,游戲最核心的內(nèi)容開發(fā)完,可能就已經(jīng) 90% 完成了。
但是最后的 10%,沒準(zhǔn)可能會用上很長很長的時(shí)間,這在游戲行業(yè)中非常常見,因?yàn)橛螒蚝诵耐娣ㄍ瓿刹⒉淮碇螒蚬δ艿耐瓿伞8鞣N圍繞玩法構(gòu)建出來的游戲功能,可能是核心玩法的幾倍甚至幾十倍的工作量。
所以,像合成大西瓜這種核心玩法明確,功能單一的游戲,只要掌握開發(fā)知識,選擇好的工具,其實(shí)搞起來真的非常簡單。
很多人看到我這個(gè)開發(fā)過程感嘆非常急速,其實(shí)是沒有分辨出核心和附加工作量的邊界,那么,讓我們分解一下《合成大西瓜》:
游戲玩法:合成,相同的兩個(gè)合成一個(gè)
操作方法:點(diǎn)擊屏幕,掉落水果
表現(xiàn)形式:物理掉落,碰撞檢查
界面流程:合成得分,超過死線失敗
就這些了,現(xiàn)在我們只需將上述分解點(diǎn)的代碼寫出來,那么這個(gè)游戲就完成了。我兩個(gè)小時(shí)的開發(fā)中,基本上就是解決上面的分解點(diǎn)。完成游戲開發(fā),總共寫了 300 多行代碼。
能夠如此急速的開發(fā)出來,完全得益于一個(gè)好的開發(fā)引擎和開發(fā)工具。Cocos Creator 解決大部分工作,比如 UI 制作、物理編輯等等,這些已經(jīng)幫開發(fā)者全部解決了,所以才能這么快的完成開發(fā)。

?
在 Cocos Creator 中(本游戲使用的是 2.4.0 版本),可視化的編輯游戲場景,能夠快速的搭建 UI 界面,省去了很多工作量。

?
在很多的游戲引擎中,物理系統(tǒng)并不能可視化編輯,需要借助開發(fā)者的數(shù)學(xué)知識來完成物理世界的構(gòu)建。
這就非常蛋疼了,反正我是不具備那么深厚的知識,而 Cocos Creator 中的物理編輯,是直接通過組件化的方式呈現(xiàn),通過參數(shù)調(diào)整可視化地完成物理參數(shù)修正。
如果沒有這個(gè)功能,我估計(jì)要在物理編輯方面浪費(fèi)兩個(gè)小時(shí)以上的時(shí)間,除了編輯還得測試,那將是一個(gè)痛苦的過程。

?
界面和物理基本都完成的情況下,就可以進(jìn)行編碼開發(fā)了。在直播的版本中,我只寫了兩個(gè)組件腳本,分別為 Ball 和 Game。
這兩個(gè)組件腳本,分別處理水果和游戲本身,水果的腳本處理非常直接,它只需要處理物理事件中的 onBeginContact 回調(diào),對應(yīng)的處理如下:
?

由于合成變大,除了消除合成體以外,還要添加更加高級的一個(gè)水果進(jìn)入到游戲場景。所以,在 Game 腳本中統(tǒng)一處理水果的 LevelUp,Game 腳本至少需要知道都有哪些水果,這些水果為了方便,我們給制作成了預(yù)制體 Prefab,建立一個(gè)數(shù)組來保存它們。
?

除此之外還有用于顯示分?jǐn)?shù)的文本標(biāo)簽、水果的節(jié)點(diǎn)層、死亡線、噴水特效的場景中引用,方便它們在 Game 組件腳本中隨時(shí)處理。
?

?
剩下的邏輯判斷代碼,結(jié)合一些私有變量的處理,其實(shí)是非常簡單的,它們總計(jì)可能還不到 100 行,可見 Cocos Creator 是一個(gè)多么方便的開發(fā)工具,讓游戲開發(fā)變得如此簡單。
?
說了這么多,其實(shí)我并沒有展示很多代碼方面的細(xì)節(jié),我覺得貼代碼不如將整個(gè)游戲的思路說清楚來的有用。
如果你對這個(gè)項(xiàng)目的代碼有興趣,我寫的《合成大西瓜》版本已經(jīng)上架了Cocos Store,不過優(yōu)惠期已經(jīng)過去了,所以看起來有點(diǎn)小貴。
如果你覺得有點(diǎn)過分,這里有其他同學(xué)免費(fèi)版本的源碼分享。倉庫地址是:https://github.com/trending
也可以多關(guān)注 Cocos 官方公眾號的推送,其實(shí)有很多不錯(cuò)的免費(fèi)資源,當(dāng)然了還可以關(guān)注我的 B 站賬號 Nowpaper,我會不定期開啟一個(gè)小游戲開發(fā)之旅,沒準(zhǔn)是直播,沒準(zhǔn)是視頻,我們下次再見!
那么,以上就是本次分享的全部內(nèi)容,歡迎對游戲開發(fā)的感興趣小伙伴點(diǎn)擊【閱讀原文】前往作者 B 站首頁一起學(xué)習(xí)和研究游戲開發(fā),在此也感謝 Nowpaper 的傾情分享。
最后祝大家都準(zhǔn)時(shí)拔電,獎(jiǎng)金多多,沖鴨


