四.Cocos Creator
0.基本介紹
Cocos Creator 是以内容創作為核心,實作了腳本化、元件化和資料驅動的遊戲開發工具。 具備了易于上手的内容生産工作流,以及功能強大的開發者工具套件,可用于實作遊戲邏輯和高性能遊戲效果。
1.使用語言:
使用Java Script語言
注:js采用單線程,不适合進行大量運算
附參考資料:https://blog.csdn.net/w2765006513/article/details/53743051
2.可執行檔案可以運作的平台
可以生成Android、Widows、Mac、ios系統的可執行程式及釋出在小程式平台(如微信小程式、小程式等),後者可以直接釋出,但前者需要對應系統的開發工具生成可執行檔案。
Android→使用Android Studio
Windows→使用Visual Studio(CocosCreator最新版本不能指定VS目錄,可能無法建構項目。我是先建構web檔案再通過第三方軟體轉成exe,非常麻煩)
Mac、ios→使用Xcode
Js環境下載下傳官網:https://nodejs.org/en/
(建議下載下傳低版本7.10.1,最新版本可能安裝失敗)
3.對象的封裝、繼承、執行個體化等功能
用滑鼠将層級管理器的對象拖拽進資料總管,即可生成相應的資源檔案(字尾名為prefab)。Prefab檔案在代碼中可以使用instantiate方法執行個體化新節點,
4.多場景的切換
使用LoadScene方法
5.實體引擎:
碰撞檢測:
①先開啟碰撞監測:
在物體挂載的腳本中添加回調函數,名稱為:
onCollisionEnter
onCollisionStay
onCollisionExit
則物體在發生碰撞後會回調相應函數
實體模型:
實體:
使用rigid body
附:新版本似乎有一個功能,可以根據圖檔形狀自動設定碰撞監測區域(可以不規則),也可以手動描點勾勒區域(目前沒試過)
繩子:
制作多個實體節點(rigid body),用rope joint(關節)連接配接起來
引力效果
無相應元件,需要自己在實體上施加力
6.粒子效果
1.使用第三方工具Particle Designer(https://www.71squared.com/particledesigner,付費)或Particle2dx(http://www.effecthub.com/particle2dx免費線上工具)進行制作
2.制作完成之後,生成粒子plist檔案
3.在CocosCreator中添加一個渲染節點:PracticleSystem(粒子)
4.将制作生成的粒子plist檔案,導入CocosCreator中的資料總管中
5.從資料總管中的粒子plist檔案拖入到粒子的屬性檢查器的File屬性中,即可顯示你制作的粒子動畫
7 .UI元件,包含:
按鈕:有
标簽:有
定時器:使用schedule函數
菜單:無(但是有了圖形化編輯器,用button制作還是很友善的)
複選框:有
進度條:有,progressbar
滑動條:有,slider
文本框:label
Cocos Creator的節點采用元件形式,每個節點都是由node及其它(1個或多個)元件(如button、label等)拼接而成,可以自己拼接,也可以用系統預設有的功能,非常友善
8.利用容器設定對象在螢幕中的位置:
可以利用節點的相對關系在代碼中設定位置,或使用下列方法:
ScollView 滑動視圖
PageView 頁面視圖
九宮格:直接在圖檔資源上操作。填充圖檔時,用Sliced(九宮格)方式填充
9.光影渲染
無,需要自己通過代碼添加亮/暗圖層
10.動畫部分,包含:
10.1對象的位置、朝向、移動
①5用update函數和setposition方法配合
②使用moveto等方法
10.2對象的顔色變化
使用Tween緩動系統或update函數設定
注:Cocos Creator的Tween可以緩動任意對象的任意屬性,而Cocos2dx隻能緩動節點的屬性
10.3數字的變化
同上
11.音頻檔案的加載、播放
使用Audio Source或audioEngine播放音效,一般為mp3
12.視訊檔案的加載、播放
使用VideoPlayer播放,官方建議mp4格式
13.學習資源的豐富性
CocosCreator的API有中英兩個版本,介紹較為詳細,網上也有很多教程
評價:CocosCreator 在功能上是對Cocos2dx的一次更新,最直覺的差別在于有了圖形化編輯器,而不是純代碼的方式,是以在搭建架構、增減節點、設定屬性(尤其設計UI)等方面非常容易操作。代碼的結構也更為簡單,提高了開發效率。
但是,CocosCreator依然有許多功能是依賴外部工具的。編輯器内無法編輯代碼(可以用VS code編輯、調試、設定斷點,配套性較好),程式預覽時一般在浏覽器上運作(也可以在自帶的模拟器運作,但效果不佳)。生成各平台的安裝包也要借助外部工具。此外,引擎的編譯器存在一些bug,時常莫名報錯(退出重進就能消除報錯)。不過,Cocos Creator仍然處于上升階段,每一次新版本的釋出都會有不小的變化,目前的bug在未來應該能得到解決
綜合來看,CocosCreator在開發各類小型程式、簡約風格程式上的優勢較為明顯。
五.橫向比較
1.資源檔案的使用:
1.1導入檔案:将檔案拖入遊戲目錄後,四個引擎都可以通過檔案的相對位置和名稱獲得該檔案(Cocos Creator還支援通過檔案的UUID通路檔案)
1.2 檔案導出:
Godot:可以将任意節點儲存為場景檔案,該檔案可以直接播放運作,
Creator:任意節點可以儲存為prefab檔案(預制資源),同1.1中使用
Panda3d、Cocos2dx:由于是純代碼,無需也無法導出部分檔案
2.實體引擎:
完整性:四者都能實作基本的實體效果(如碰撞、運動等)
Godot:使用内置引擎
Cocos2dx:采用了Box2D實體引擎和Chipmunk實體引擎,也可以禁用這兩個并調用其他實體引擎API
Panda3d:使用ODE實體引擎
CocosCreator:采用Box2D,也可以使用其他實體引擎
3.修改已有的開源部分代碼:
Cocos2dx:每建立一個檔案時,都會自動複制一份它的所有API,放入sln下,是以可以直接修改,且非常友善,但是每次編譯會需要較長的時間
Panda3d:安裝包自帶python,預設情況下,所有程式共用一個API。可以将其複制并修改,但需要手動設定API路徑。
Godot:所有工程檔案共用一份API。
Cocos2dx:所有工程共用一份API。它的底層有cocos2dx和JavaScript兩個引擎,編輯時使用js語言,編譯時會翻譯成c++語言,修改底層代碼起來會比較困難
4.引擎的成熟度及發展情況:
Godot: 2014年釋出,目前仍在更新,成熟度較高
Cocos2dx:成立于2008年,近幾年已不再更新(技術人員已轉向cocos creator的開發),功能基本完善,但存在一些因為需要相容舊版本而存在的曆史遺留問題。
CocosCreator:2016年成立,成熟度較低。目前引擎仍然有不少bug,但也仍在不斷更新修複當中,個人比較看好它的未來。
Panda3d:仍在更新。因為主打3d功能,2d上并無明顯優勢
5.學習資源
1.API
Godot、CocosCreator:有中、英文兩個版本
Cocos2dx、Panda3d:隻有英文
2.中文社群
Godot、Cocos:有(Godot似乎要翻牆通路)
Panda3d:沒找到
3.教程、學習資源
Cocos2dx > Godot > Cocos Creator>Panda3d
附:搜尋範圍:百度+github
如果隻看中文資源的話,兩個cocos引擎資源較多
6.引擎效率:
測試内容:每一幀在螢幕上方繪制一個圖像,該圖像不斷下落,到螢幕底部時消失(約25s)。記錄引擎幀率
Godot:穩定在40幀上下
CocosCreator:使用html5(浏覽器播放)時,15-20幀上下。建構成exe檔案播放時,能達到60幀(60為最高幀率,即沒有測出上限)
結語
通過對這四款引擎各功能的學習、比較,我認為目前最适合的是Godot,它在各功能表現的四平八穩,開發應該會比較順利。Cocos Creator的話,目前容易遇到各種bug,可以期待一下它以後的表現。
以上各個引擎的功能我隻是走馬觀花地了解了一下。如果存在錯誤或有版本更新,希望各位指出。