cocos creator入坑和開發(fā)第一個小游戲——爬樓梯

自從微信的跳一跳出來后查坪,很多公司都著手小游戲的開發(fā),對于小游戲來說最重要的就是不用安裝歧蒋,微信傳播廣泛土砂,容易上手利用用戶碎片時間。

然后我也開始學習小游戲的開發(fā)谜洽,用1萝映、2天時間看完了技術胖的教程后,就擼起袖子開始模仿一個小游戲來入手熟悉了阐虚。

這里有相關的學習資料序臂,供大家參考http://forum.cocos.com/t/creator-3-31/39917

剛好在朋友的分享下玩了JD最近開發(fā)的小游戲——一起爬梯,覺得這游戲適合練手,所以就從這款游戲開始了奥秆。

圖片素材可以在這里找到愛給網(wǎng)逊彭。

PS:看見藍色的字就點一點吧,沒準藏了小驚喜构订。

一侮叮、準備工作

準備的素材

因為只是一個demo并且沒有美術設計,就在愛給網(wǎng)通過搜索相應關鍵詞來找到所需要的素材悼瘾。其實也比較簡單囊榜,找一張豎的場景背景圖,然后相應的樓梯方塊和一張人物素材就可以了亥宿。

二卸勺、創(chuàng)建項目

把素材都找好后就可以開始創(chuàng)建項目了,我把項目命名為Climb-Stairs箩绍,然后把項目的場景孔庭、腳本和素材都創(chuàng)建好,分好文件類目材蛛,大概就是下面這樣了。

項目整體架構

三怎抛、開始編寫核心代碼

在開始編寫代碼前卑吭,首先需要分析游戲的玩法,和實現(xiàn)的思路马绝。一起爬梯豆赏,就是角色在不停的往上爬,需要點擊屏幕左右來控制角色的方向富稻,如果方向錯了掷邦,或者時間到了,角色將會掉落萬丈深淵椭赋,游戲結(jié)束抚岗。

通過游戲我們能發(fā)現(xiàn),其實游戲中的人物一直都是在屏幕的固定位置哪怔,只是在動作上有左右的變向宣蔚。而正真在移動的只有每一塊臺階,點擊屏幕左邊臺階就從左往角色中間移動认境,點擊屏幕右邊臺階就從右往角色中間移動胚委。這就讓用戶有錯覺角色是一直在往上爬的效果了。

那我們開始先創(chuàng)建一個GameScene的場景叉信。

GameScene場景

把背景圖和角色都拖進里面亩冬,然后再加入一個Label來顯示分數(shù)。

之后再創(chuàng)建一個stair的Prefab硼身,因為是重復的對象所以創(chuàng)建Prefab方便使用硅急。

stair的Prefab

同時我調(diào)整了stair的Size枢冤,因為這是別人做好的素材,在大小上可能有點大了铜秆,所以我們可以根據(jù)自己的需要來調(diào)整大小淹真。

因為如果每個臺階單獨在場景中添加的話,那每一步都需要對已經(jīng)生成的stair節(jié)點進行位置的移動连茧,這無疑是不科學的核蘸,然后我想到的方法就是添加一個空節(jié)點,相當臺階的容器view啸驯,這樣只要把生成的stair都加在里面就可以了客扎。這樣點擊時候的臺階移動,就是容器view自己在移動罚斗,達到了整體移動的效果徙鱼。

臺階生成
臺階生成的位置

這里我們通過隨機數(shù)來生成臺階的位置,是左邊還是右邊针姿,因為游戲剛開始時第一塊是在角色的正下方袱吆,所以設置好第一塊的位置。之后根據(jù)隨機數(shù)小于等于0.5的在左邊距淫,大于0.5的在右邊绞绒,然后每生成一塊就記錄上一塊的位置,這樣就可以不停的往上增加了榕暇。

生成臺階后蓬衡,我們就需要在屏幕上添加點擊事件的方法。讓角色和臺階都動起來彤枢。

點擊事件添加

因為我們不能只讓臺階在移動而角色一動不動狰晚,這樣對于一款游戲來說太過死板了,所以我們給角色添加了一個向上跳躍的動作缴啡,之后再回到原來的位置壁晒。而之前也說了臺階的移動實際上是該節(jié)點容器的移動,通過計算得出了需要移動的距離盟猖,這樣角色和臺階在點擊時一起運動就可以了讨衣。

四、添加碰撞檢測

一直沒想通如果用戶點擊方向錯誤式镐,角色踩空掉落萬丈深淵的判斷方法反镇,之前看過可以通過兩個節(jié)點的交集來判斷,但這樣會和其他的臺階也有交集的可能娘汞。之后想到了通過碰撞的方法來實現(xiàn)角色是否觸碰到了臺階歹茶,解決了角色踩到臺階還是踩空的Over條件。如果大家還有其他更好的判斷方法,可以在下方評論惊豺。

第一步為角色添加不規(guī)則碰撞

player添加不規(guī)則碰撞

點擊player然后添加組件—添加碰撞組件—Polygon Collider燎孟,然后點擊Editing,這樣就可以通過手動調(diào)節(jié)碰撞的位置了尸昧。我們知道角色與臺階的碰撞主要是角色的腳和臺階的正中位置揩页,這樣就可以避免了角色與其他臺階的誤觸發(fā)。

stair的Prefab添加不規(guī)則碰撞

同樣的烹俗,我們給臺階也加入不規(guī)則碰撞爆侣,因為碰撞是需要兩個物體觸發(fā)的,所以兩個節(jié)點都需要添加幢妄。而如果在一些場景需要不同的節(jié)點產(chǎn)生不同碰撞效果的兔仰,我們可以編輯對應的組別。

分組管理

分組管理可以清晰看到蕉鸳,哪組對應的組別才會發(fā)生碰撞乎赴。

在節(jié)點上添加了碰撞區(qū)域后,之后就可以在代碼上添加碰撞后所觸發(fā)的事件了潮尝。

碰撞方法

這三個是官方的碰撞方法榕吼,只要開啟了碰撞監(jiān)測添加以上方法就會觸發(fā)。

五衍锚、添加游戲結(jié)束條件

之前也說過了友题,現(xiàn)在游戲里面判斷角色踩空的判斷條件不是很好,所以這里只說出了游戲現(xiàn)在的做法戴质。

點擊方法
檢測狀態(tài)判斷是否觸碰到

其實現(xiàn)在主要通過點擊后啟動一個定時器去檢測角色是否與臺階觸碰,通過onCollisionEnter方法可以知道如果碰撞了就是沒有問題isTouched為true踢匣,如果方向錯了那在指定時間內(nèi)就會是false告匠,這樣就可以認定為踩空,會掉落萬丈深淵而游戲結(jié)束离唬。

這里的判斷條件是根據(jù)定時器來觸發(fā)后专,所以如果點擊比較快的時候,出現(xiàn)了時間差那isTouched有可能是false而認定為失敗输莺。還有就是在踩空的時候會出現(xiàn)一小段停滯才會觸發(fā)掉落的動畫戚哎,因為定時器調(diào)用的方法時間還沒到,所以整體不夠順暢嫂用。望大家有更好的方法分享出來型凳。

六、添加分數(shù)更新

在Game.js中已經(jīng)添加了scoreLabel來顯示分數(shù)嘱函,那我們要在產(chǎn)生碰撞的方法來增加分數(shù)甘畅,我們都知道了碰撞成功就代表方向?qū)α藳]有踩空。所以在這個方法里面添加相應的方法就可以了。

增加分數(shù)

把分數(shù)添加到緩存里面疏唾,然后在當前的Canvas下找到scoreLabel的節(jié)點蓄氧,定義為cc.Label類,在使用前判斷一下是否為nil來避免報錯槐脏。就這樣整個游戲就基本完成了喉童。

七、游戲結(jié)束重新游戲

添加一個顯示最終得分的和重新游戲按鈕顿天,點擊按鈕后將重新加載游戲場景堂氯。

Over.js

八、游戲效果和展望

因篇幅有限露氮,有部分細節(jié)沒有寫出來祖灰,大家可以下載源碼查看,已添加好相關注釋畔规。

游戲源碼請戳這里局扶,歡迎大家來star,謝謝叁扫!

游戲算是基本完成了但還沒有達到和一起爬梯的效果三妈,后期可以加入帶有炸彈、花的阻礙物莫绣。還有還沒加入時間倒數(shù)畴蒲,踩到臺階后臺階會逐漸加速下降,讓用戶不點擊跳躍的話也會結(jié)束游戲对室。還需要加入不同的聲效來讓游戲體驗更好模燥,這些功能將會在之后慢慢完善。

入坑cocos creator還不是很久掩宜,歡迎大家來吐槽蔫骂。

最后廣告時間五年日記本——一天一問感受變化的自己。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牺汤,一起剝皮案震驚了整個濱河市辽旋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌檐迟,老刑警劉巖补胚,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異追迟,居然都是意外死亡溶其,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門怔匣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來握联,“玉大人桦沉,你說我怎么就攤上這事〗鹈觯” “怎么了纯露?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長代芜。 經(jīng)常有香客問我埠褪,道長,這世上最難降的妖魔是什么挤庇? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任钞速,我火速辦了婚禮,結(jié)果婚禮上嫡秕,老公的妹妹穿的比我還像新娘渴语。我一直安慰自己,他們只是感情好昆咽,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布驾凶。 她就那樣靜靜地躺著,像睡著了一般掷酗。 火紅的嫁衣襯著肌膚如雪调违。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天泻轰,我揣著相機與錄音技肩,去河邊找鬼。 笑死浮声,一個胖子當著我的面吹牛虚婿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泳挥,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼雳锋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了羡洁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤爽丹,失蹤者是張志新(化名)和其女友劉穎筑煮,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粤蝎,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡真仲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了初澎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秸应。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡虑凛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出软啼,到底是詐尸還是另有隱情桑谍,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布祸挪,位于F島的核電站锣披,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏贿条。R本人自食惡果不足惜雹仿,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望整以。 院中可真熱鬧胧辽,春花似錦、人聲如沸公黑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帆调。三九已至奠骄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間番刊,已是汗流浹背含鳞。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芹务,地道東北人蝉绷。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像枣抱,于是被迫代替她去往敵國和親熔吗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容