cocos2dx學習筆記-整體結構


版本與平台

  • 源碼版本:3.10
  • 平台:mac,ios

目錄結構

從官方下載到cocos2dx最新版本解壓以后,可以看到包的目錄結構如下圖所示。可以看到cocos源碼結構清晰,例子完善,對於初學者來說,大大降低了學習的難度。

按照官方文檔環境部署,並創建一個工程,在XCODE打開。

打開以后的工程結構如下圖所示。

  • Classes 包含所有cocos的CPP代碼
  • Resources 包含資源文件,圖片、字體
  • cocos2d_libs.xcodeproj cocos2d引擎的源碼,編譯以后會生成libcocos2d iOS.a,為了節約硬盤,可以將此工程刪除,直接將libcocos2d iOS.a引用到工程,所有項目共用一個lib和頭文件,可以給128G Mac用戶節約很多硬盤空間。
  • Frameworks IOS用到的Frameworks。
  • iOS iOS AppController、main、RootViewController代碼。

框架結構

在源碼的docs目錄下有上圖所示的框架結構圖,從下往上看,

  • cocos2d支持目前大部分mobile、PC的系統,以及web平台。
  • 在底層,包括C++、JS兩種引擎實現,JS引擎是提供cocos2d-html5實現的,運行在瀏覽器環境中,整個引擎用js完全重寫,使用WebGL和Canvas作為圖形引擎。
  • 在引擎上面,有JS API、Lua API以及C++API,這些API其實都是一樣的,實現語言不同。其中JS API比較特殊,包括JSB和cocos2d-html5,JSB是采用firefox的SpiderMonkey作為js解釋引擎在cocos2d-c++的基礎上綁定。而Cocos2d-html5和JSB的實現不一樣,但是API和JSB完全兼容,這樣就能實現一套代碼既能運行在IOS、Android(Cocos2dx JSB),又能運行在瀏覽器里)。
  • Lua API也是通過Lua腳本的解釋引擎實現Lua與C++的綁定。而C++ API則直接由cocos2d C++提供。
  • 最上層則是我們運行的游戲程序了。

cocos2d-js與cocos2d-lua

在實際開發中,大部分都是使用cocos+js或cocos+lua來進行開發,對於這兩種腳本語言要怎么選擇呢?通過了解總結出以下幾個優缺點,供看官自行選擇。

  1. JS Binding最大的優勢,就是可以直接通過cocos2d-x html5移植到網頁;
  2. JS更容易實現面向對象,唯一的缺點是沒有繼承,調用父類方法等原生方法,這些需要用原型鏈來模擬實現,好在cocos2d-jsbinding已經幫我們實現了繼承等功能,實際用的時候完全可以想面向對象語言去實現類的繼承,重載,重寫,父類調用等功能。
  3. Lua直接編譯成字節碼效率比 JS高 ;
  4. Lua就是作為嵌入式語言來設計的,所以與C\C++非常容易交互;與Java/OC的交互,Lua也可以繞過C\C++層直接交互,在集成第三方SDK、與IOS、Android原生交互時會省事。

官方Demo

相對於干巴巴的API文檔,看官方提供的Demo對於初學者來說是更好的學習方法。在tests目錄下有c++、JS、LuaDemo源碼及在各平台的項目工程,直接打開編譯以后可以看到bin目錄下可執行程序。運行起來的界面如下圖,

點擊圖中的按鈕可以看到實際的運行效果,再去找源碼參考,是非常有效的學習方法。

cocos2d-x整體情況簡單介紹到此,接下來將通過源碼對內部實現進行分析。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM