【cocos2d-x從c++到js】01:迎接指令碼時代的到來

技術小胖子發表於2017-11-15

隨著移動領域進入的遊戲公司越來越多,開發成本一路上漲。以C++為代表的老一代開發語言,將直面lua,js等指令碼語言的衝擊。

最近一年多來,移動端在做指令碼化開發方案的公司越來越多。cocos2d開源社群很早就提出了用js打通各個分支版本的設想,底層執行方式是各個分支引擎的(-x,-iphone,html5),上層統一使用js,使得專案可以很方便的在各個引擎之間互換。

從遊戲開發來看,c++和js各具優勢,兩者結合威力無窮。前不久,cocos2d社群進行了一次聯合釋出,邁出了關鍵的一步。本系列將是我學習cocos2d-x for js的一些心得體會。

cocos2d-x for js是cocos2d-x的一部分,他使用js做指令碼,底層使用c++執行,在提升開發速度同時,保證了執行效率。

首先,我們下載cocos2d-x的最新版本

http://cocos2d-x.googlecode.com/files/cocos2d-2.1beta3-x-2.1.0.zip

 

該版本中有好幾個js遊戲的例子:CocosDragonJS,MoonWarriors,WatermelonWithMe

我們暫時不使用其他IDE了,對於cocos2d-x的開發者來說,手頭最現成的工具就是vs。用vs2010開啟工程,蛋疼的發現,裡面既沒有js程式碼,也沒有c++程式碼。只有一個spidermonkey的js直譯器,還有一個win32版cocos2d-x的殼。

 

好吧,首先我們需要匯入js的原始碼,很不幸,這個專案的js原始碼也沒有放在MoonWarriors的目錄下,而是在

cocos2d-2.1beta3-x-2.1.0samplesTestJavascriptcocos2d-js-testsgamesMoonWarriors這個資料夾中

我們把這裡面的程式碼匯入到MoonWarriors專案中。

 

好吧,這個目錄結構比較蛋疼。但是勉強能看了。

但是又遇到了另外一個問題,我們在js原始碼中,沒法.出來程式碼,自動完成功能幾乎是無效的。番茄只能提示出當前js檔案中的程式碼,在其他檔案中的程式碼,沒法提示出來。尤其是引擎中的js介面。這個實在太要命了。

我查了半天,發現cocos2d-2.1beta3-x-2.1.0引擎中,根本沒有js版本的程式碼。也就是說,他們只是用spidermonkey把js的介面繫結成了c++的。這可如何是好呢?沒程式碼就沒法使用自動完成。

 

呵呵,之前我們說過,這次是一次聯合釋出,也就是說各個版本的js介面應該是一致的,也就是說我們可以使用html5版本的js程式碼,來協助完成程式碼提示。

去下一個html5引擎

http://cocos2d-x.googlecode.com/files/Cocos2d-html5-v2.1.zip

開啟後發現,我們要的程式碼在這四個資料夾裡

把他們也匯入到專案中

 

然後,我們隨便開啟一個專案原始碼,就可以.出來了。自動完成可以使用,哦也。

打完收工。

 

 

 本文轉自 老G 51CTO部落格,原文連結:http://blog.51cto.com/goldlion/1113786,如需轉載請自行聯絡原作者


相關文章