咱們用Cocos做一個前段時間很火的《召喚神龍》式游戲(1)
(本文作者紙雀)
前言
之前咱們分享過很多Unity的教程。
今天咱們換個口味,做一個CocosCreator小游戲分享的迷你系列。分享的主題,就是前段時間一度引起話題的《召喚神龍》——雖然題材和具體規(guī)則有區(qū)別,但大體玩法是一致的。
需要說明的是,限于篇幅所限,本系列可能不會指導(dǎo)大家從零基礎(chǔ)開始完整的制作,但是會從游戲設(shè)計到功能實現(xiàn)的角度,帶您剖析一個上頭的小游戲是如何組成的,并且從中選取一些有意思的小設(shè)計分享給大家。
1.為什么是Cocos Creator
先來簡單聊下為什么做這個小項目使用Cocos。其實無它,最主要就是因為CocosCreator界面簡潔 , 功能精簡——非常適合做小游戲 . (o?▽?)o ?
CocosCreator通常使用TypeScript。TS是JavaScript的超集 , 和C#一樣是強(qiáng)類型語言。如果你之前學(xué)了Unity,那上手CocosCreator簡直是如魚得水。 (~ ̄▽ ̄)~
2.成品圖
廢話不多說,先整點會動的實機(jī)效果讓大伙兒看看:





3.從游戲設(shè)計到功能實現(xiàn)
從這里開始咱們就具體分析一下玩家是如何"爽"起來的(?′?`?)

玩家在躲避高級敵人的同時尋找低級或同級的敵人 , 打敗他們后會吸納到自己的隊伍中 , 每三個同樣的角色會合成升級成更高級的角色 , 當(dāng)你成功合成高級角色之后就可以欺負(fù)回去曾經(jīng)打不過的敵人啦。
所以玩家大概會經(jīng)歷"逃跑-尋找-擊殺-升級-擊殺曾經(jīng)擊殺不了的敵人"的循環(huán)。
(我要悄悄的變強(qiáng) , 然后驚艷所有人!)當(dāng)時欺負(fù)我的 , 我要以牙還牙 , 加倍奉還o(′^`)o
玩家需要的功能 :
處理操作輸入----移動 , 玩家在地圖內(nèi)能朝任意方向移動。
自動攻擊----最近的敵人 , 同時不能影響移動 , 玩家的上半身要面對敵人開火。
積累隊友到升級----重新排布隊伍 , 更改各類敵人數(shù)量 , 重新刷新敵人 , 更改視野移速攻血等屬性。
敵人需要的功能 :
生成----敵人生成的位置在玩家視野外 , 并且按照表中配置好的數(shù)量生成。
移動----默認(rèn)隨機(jī)移動 , 撞墻之后轉(zhuǎn)向 , 附近有玩家時有追擊/逃離兩種狀態(tài)。
攻擊----攻擊最近的敵人或者玩家。
死亡----銷毀自身的時候在合適的位置生成一個自己。
其他的小功能 :
道具
攻擊范圍
敵人位置提示
音效
到此為止小游戲的功能基本上整理的差不多了。
3.1咱們接下來就具體來看看移動時戰(zhàn)斗和非戰(zhàn)斗兩種狀態(tài)的轉(zhuǎn)換
演示如下 :

新建一個3.4.0的項目 , 會看到如下界面 . ?

在上面切換成2D模式 , 然后把圖片資源拖進(jìn)左下角的資源管理器 , 就可以導(dǎo)入到工程里了 , 我這里拖入了一個步槍手小人的素材 .

接下來把資源拖到場景里會新建一個Canvas , 注意CocosCreator場景里的物體渲染順序是從上到下的 , 也就是說下面的會覆蓋上面的 , 經(jīng)過一番調(diào)整層級之后咱們的小兵就成功導(dǎo)入了 !


接下來咱們給他寫個基礎(chǔ)的移動功能:

這段代碼包括了接收玩家的觸摸輸入 , 控制移動 , 和攝像機(jī)的跟隨:
來看看效果

關(guān)于開火和移動的姿勢切換的實現(xiàn),這個比較適合用動畫系統(tǒng)做。我把動畫相關(guān)的內(nèi)容留到下期來講解,這里先賣個關(guān)子。
接下來咱們做瞄準(zhǔn)敵人的功能。
首先,我們要確保下半身永遠(yuǎn)面朝著咱們的移動方向。
然后咱們要判斷敵人在不在玩家攻擊范圍內(nèi)。如果在范圍內(nèi) , 那上半身的角度就是:先算從玩家到敵人的向量 , 然后再與(0 , 1)向量比較轉(zhuǎn)成弧度 , 再乘180 / Math.PI 轉(zhuǎn)換成角度 , 又因為在CocosCreator里rotation順時針為負(fù)數(shù) , 逆時針為正數(shù) , 和signAngle這個方法算出的結(jié)果(順時針為正逆時針為負(fù))方向相反 , 所以前面要加負(fù)號。
經(jīng)過這么一通猛于虎的計算操作,咱們就算出了上半身面朝敵人的正確方向。

到此為止是第一期的全部內(nèi)容 , 介紹了CocosCreator的一些基礎(chǔ)操作 , 添加了行走和索敵的功能。
下期預(yù)告 :
CocosCreator中的預(yù)制體和動畫系統(tǒng);
玩家的三合一是怎么實現(xiàn)的。
敬請期待φ(>ω<*)

皮皮關(guān)與網(wǎng)易聯(lián)合開發(fā)了完備的游戲開發(fā)線上課程,目前頁面已經(jīng)上線:
https://ke.study.163.com/course/detail/100103487
頁面中有課程的介紹說明。同時,之后也會發(fā)一篇更詳細(xì)的文章來專門介紹一下。
感興趣的童鞋,可以通過企業(yè)號18969102874與網(wǎng)易小伙伴取得聯(lián)系,有什么問題直接糊網(wǎng)易小伙伴一臉(戰(zhàn)術(shù)后退