Cocos Creator 2.3開發《海底世界》小遊戲(1)

2020-12-13 老朱編程學習號

##一、簡介

其實,創作這個小遊戲是前段時間早就有的一個想法,即在使用Scratch進行少年編程工具的這段時間裡,我一直在思考:Cocos Creator開發前能否使用Scratch先進行快速原型開發——使用Scratch(它的一個最大優勢正是快速實現遊戲中角色、動畫、聲音及碰撞檢測等的積木編程)先快速構造出遊戲產品的一個類似於功能原型的簡單版本,然後再基於這個產品實現Cocos Creator版本的細化開發。

當然,在實現上述目的的過程中,Scratch是有很大局限性的,除數據結構類型有限外,對於複雜的碰撞檢測也是無能為力的,對於商業級遊戲中的遊戲角色特效,以及粒子特效也是力不從心——想再從數學源頭去實現這樣的效果根本得不償失。而且,還有其他很多問題。

本文中,我想拿我前段時間創作的一個簡單版本的小遊戲Scratch《海底世界》小遊戲開發入門為例作試驗,來測試我上述想法的現實性。

注意:在素材準備就緒的情況下,使用Scratch開發出這種小遊戲2個小時就足夠(包括儘可能的細化)。

二、遊戲角色及關係

遊戲中各角色間的關係,在此不再贅述,有興趣的朋友可以參考我上面提供的連結。當然,作為小測試,嚴格地說,這也不是一款什麼遊戲,只算是遊戲的很小的一部分罷了。其中,本小遊戲的Cocos Creator版本中略有改進的功能如下:

(1)加入一個簡單無比的開始界面

(2)在主遊戲界面中增加一些更為細膩的動畫效果,例如:

(A)頂部小黃魚以緩動動畫形式來回遊動

(B)添加了海底氣泡升起效果

(C)小海星碰到水螅後不僅尖叫還扭頭就跑

(D)小海星不是在海底隨機位置出現,而只限於左右遊動

本小遊戲的運行時片斷視頻如下:

瀏覽器版本過低,暫不支持視頻播放

下面給出一幅上面視頻中的靜態快照:

快照一瞥

三、功能流程圖

為了更清楚地了解接下來的編程思路,下面給出遊戲中幾個角色各自功能簡介及關係描述。

Cocos Creator版本的遊戲功能模塊圖

四、代碼分析

啟動場景文件名稱為welcome.fire,其設計時截圖如下:

啟動場景設計時快照

此界面非常簡單,給出一句小遊戲的玩法簡介,並使用了一個簡單的粒子動畫效果,以突出遊戲標題。

(一)粒子系統節點有關編程

這裡的粒子效果非常簡單,直接使用了系統內置的功能。先來看其在層級管理器上的位置,如下圖所示:

粒子系統節點位置

上圖中Particle為一個空節點,用於承載ParticleSystem組件和Animation組件。接下來,看一下其所對應的屬性檢查器中有關屬性設置的截圖:

粒子系統節點有關屬性值設置

注意到,在此節點上我們直接掛載了系統的ParticleSystem組件,並使用了系統內置的粒子圖像文件atom.png,並選擇「Play On Load」,使其在場景啟動後自動播放。

下面,簡單地看一下Animation組件中動畫剪輯文件的製作情況,如下圖所示:

動畫剪輯文件particle.anim設計

易知,在此我們簡單針對粒子系統組件所掛載的節點的屬性x和scale創建屬性動畫。其中,scale值由默認的1修改為0.1,因為我們要實現一組小的微粒動畫在遊戲標題下繪製一條水平線效果,所以需要把粒子比例調整得很小。另外,把節點的x坐標值進行修改(y屬性值不變),從而實現粒子水平劃線的效果。

(二)「繼續」按鈕編程

這個「繼續」按鈕編程有兩點注意一下,下面先看其屬性檢查器關鍵部分屬性值設置情況:

繼續按鈕屬性設置

注意到,上面激活其交互功能(勾選「Interactable」),並觸發其Click事件(看後面代碼),然後實現在點擊時播放按鈕點擊的聲效。下面看相關代碼。

按鈕節點btnContinue關聯的腳本組件BtnContinue.js代碼如下:

腳本組件BtnContinue.js代碼

上述代碼中僅有兩點值得說明:1,在按鈕的click觸發器函數中,播放掛載到腳本組件上的聲效文件;2,藉助系統scheduleOnce計時調度器函數,實現了在聲音播放1秒後把當前場景切換到遊戲主場景(mainscene.fire)。

五、小結

如今,Cocos Creator差不多已成長為一個世界級遊戲工業開發工具,Scratch根本無法與之比擬,當然也沒有必要作比較。但是,嘗試把Scratch作為Cocos Creator簡單型遊戲開發的原型開發工具未必不是一件好事——本文思想正在作這種嘗試。本篇中,我們實現了 Cocos Creator版本《海底世界》小遊戲的啟動場景的設計與編程邏輯。當然,真正令人興奮的事情才剛剛出現,我們將在下篇中全面介紹這個小遊戲主場景的實現邏輯。敬請期待……

相關焦點

  • Cocos Creator 2.3開發《海底世界》小遊戲(2)
    一、快照回憶與簡介為了輔助理解小遊戲實現流程與編程邏輯,恕我再複製上一篇中快照,供閱讀參考。所以,為了方便讀者理解後面解釋,先給出這個小遊戲的層級管理器與資源管理器架構描述。(2)玩家通過操作鍵盤上的上下左右或者WSAE四個字母鍵實現控制水螅四個方向的移動,目的是為了躲避海星。(3)與遊動的小海星碰撞檢測。有關(1)中幀動畫方式,我略去介紹,其實現原理與上面小黃魚動畫一致,完全不用編程即可達到動畫目的。
  • Cocos2d-x v3.13正式發布打造高效開發新體驗
    原標題:Cocos2d-x v3.13正式發布打造高效開發新體驗   近日,Cocos引擎完成重大更新:正式推出Cocos2d-x v3.13版本。該版本進一步完善並整合了歷史零碎功能,為開發者創造更為簡單、快捷的開發環境。
  • Scratch《海底世界》小遊戲開發入門
    一.說明本文小遊戲《海底世界》的題材是針對小學三年級(及更高年級)小朋友學習Scratch編程入門而準備的。儘管網絡上(甚至是官方)的解釋是,Scratch適合於6歲及以上小朋友編程。但是,根據本人的初步試教,感覺這個結論有些牽強。
  • 海底世界系統app開發 軟體定製
    海底世界系統app開發 軟體定製(源碼開發)聯繫廣州技術團隊:佘生133-1885-1634微電海底世界系統開發APP,海底世界系統源碼開發
  • 觸控科技: 搭建技術橋梁 Cocos 2d-x首次赴臺辦沙龍
    本次沙龍將於9月5日晚19:30在「金色三麥」(臺北美麗華店)正式開始。 Cocos 2d-x核心開發者吳昊將分享《Cocos2d-x,leading the way》,帶來開源遊戲引擎Cocos 2d-x的最新資訊,更有Cocos引擎技術正式進軍3D領域、官方代碼編輯器Cocos Code IDE等第一手乾貨分享。
  • 和遊戲:《捕魚達人3》大獲成功的市場啟發
    而這其中,休閒益智類遊戲收入最高業務為《捕魚達人3》。《捕魚達人3》自7月16日上線已來,各項運營指標表現優異,收入排休閒益智類遊戲第二位。《捕魚達人3》一經推出便受到無數玩家的熱烈歡迎。捕魚系列作品此前運用的是2D成像技術,畫面風格寫實卻又不失華麗。而其正統續作《捕魚達人3》將2D技術升級成為3D立體畫面,畫風方面也繼承了捕魚系列的國際化,搖身變為歡快熱鬧的3D卡通。
  • Cocos插件教程:編寫帶擴展屬性插件的經驗分享
    PS:2.2.1升級至2.2.5之後,需要相應地升級插件工程,具體可看新版本示例工程中Addins/Addins.Sample/Lua/修改記錄.txt二、 編寫對應的Lua文件這一步主要是將我們的接口準備好,給上邊配置的C#工程調用。
  • Cocos 插件教程:編寫帶擴展屬性插件的經驗分享
    PS:2.2.1升級至2.2.5之後,需要相應地升級插件工程,具體可看新版本示例工程中Addins/Addins.Sample/Lua/修改記錄.txt二、 編寫對應的Lua文件這一步主要是將我們的接口準備好,給上邊配置的C#工程調用。
  • Layabox率先完成bilibili小遊戲的適配與IDE發布,LayaAir 2.6.1...
    bilibili小遊戲完整開發流程一、註冊成為小遊戲開發者註冊開發者帳號,和添加開發與預覽權限帳號,是B站小遊戲開發的基礎。只有擁有開發者權限的用戶,才能進行上傳代碼包的操作。只有擁有預覽權限的用戶,才能掃碼訪問後臺開發版本、提審版本的二維碼。其他用戶掃碼後會提示無訪問權限。
  • 《海底世界》精彩小遊戲 一次看不夠
    海底世界裡不僅僅有很多可愛的角色,還有很多有意思裡小遊戲,下面就為大家介紹一下海底世界特別的小遊戲:    一、魚俠羅德小遊戲    魚俠羅德小遊戲在海底世界的魚民之家場景    魚俠羅德是海底世界的英雄,懲惡揚善,因此魚俠羅德小遊戲一直受到小魚們的喜愛!
  • 《捕魚達人3》主程洪志雄:續作全面超越前代
    經典國民級遊戲《捕魚達人3》自發布以來大放異彩,細膩無暇的海底世界、精巧別致的道具設計、活潑可愛的各式魚群……以及驚人的遊戲包大小——24M!Cocos引擎3D技術為《捕魚達人3》的3D效果帶來了更多靈氣,也帶給用戶更爽快、更刺激的捕魚體驗。
  • 智力小遊戲!開發腦力就從玩開始吧~
    孩子處於0~3歲時是大腦發育的黃金時期!在這個時候給孩子玩一些有趣的智力遊戲,會讓孩子在遊玩的快樂中開發大腦,變得更加聰明!誰說「玩」不能讓孩子更加聰明呢?不是要給孩子買很多的玩具,「玩」其實最重要還是家長的陪伴!
  • 青島海底世界-青島海底世界 海底生物 水族館 美人魚 景區-中國...
    青島海底世界是由青島水族館與山東魯信投資集團有限公司共同投資開發的現代化大型海洋生態旅遊展示項目。她集海底觀光旅遊與海洋科普教育於一體,填補了山東省海底世界的空白,並創下多項全國第一。其精心設計與依山傍海之自然風貌相融合,形成了青島黃金海岸線上一道獨特的亮麗風景線。
  • 青島海底世界
    海底世界展示大廳內,一些典型海洋生物標本,大部分海洋魚類種類基本上都能體現。3.海豹,看著都很賣萌,現在這種海洋生物數量很少,很大可能與其生存不利生態環境變化有關吧。4.海洋是巨大的寶庫,神奇而又充滿魔力,隨著科技的發達,人類將更好的開發如利用。
  • 日本開發出海底世界遠程觀測系統 - 人民網日本版--主頁
    日本開發出海底世界遠程觀測系統     新華網東京7月17日電(記者 何德功)魚在海底悠然自得的樣子,只有潛入海底的潛水員才能看到。然而,日本京都大學開發的一種觀測系統,讓人遠離大海同樣能夠觀看五彩繽紛的海底世界。
  • 《王國之心3》新截圖展示經典角色和烹飪小遊戲
    《王國之心3》新截圖展示經典角色和烹飪小遊戲 時間:2019-01-21 06:01:32 來源:3DM編譯
  • 《海底總動員2》公映 3D海底世界震撼升級
    作為影史經典動畫《海底總動員》(Finding Nemo)的正牌續集,《海底總動員2》十三年後再譜新篇,開啟了全新的絢麗海底大冒險。既有溫馨歡樂的故事,又有華美絢麗的視覺呈現,《海底總動員2》是暑期檔最不可錯過的合家歡觀影選擇。影片亦有望接棒《瘋狂動物城》,成就迪士尼動畫電影的又一輪爆發。
  • 開發智力別就會從1數到100,幾個小遊戲生動有趣,爸媽學起來
    別再讓孩子從1數到100,這個方法才能鍛鍊智力不少孩子都有這樣的經歷,從剛學會「識數」開始,每天都要被爸媽強逼著從1數到100,不數完就不讓睡覺。為了開發孩子的大腦,爸媽們也是非常較真了。但是,這樣的訓練真的有效果嗎?
  • 世界海洋礦產大會在海南三亞開幕 探討海底礦藏可持續開發
    杜莉 攝中新網三亞9月23日電 (記者 王曉斌)第四十八屆世界海洋礦產大會23日在海南三亞開幕,來自中、美、英、德等超過20個國家和地區的近200名專家學者將在五天的會期中,針對環境,規程和技術等方面內容,就如何可持續開發海底礦產資源展開討論。海洋礦產資源的開發和利用一直是國際學界和社會關注的熱點話題。
  • 遊戲開發5個階段學習路線給你準備好了!(含引擎/書籍資源)
    這篇文章主要是解答想入門遊戲開發編程領域的小夥伴們的疑問,給大家一套完整的學習路線,希望能幫助到你們!話不多說,直奔主題。一、前言首先我們要知曉遊戲開發主要分為2D遊戲和3D遊戲。2D遊戲通常是為手機開發,3D遊戲一般使用的遊戲開發工具。