隨著移動領(lǐng)域進(jìn)入的游戲公司越來越多,開發(fā)成本一路上漲。以 C++ 為代表的老一代開發(fā)語言,將直面 lua,js 等腳本語言的沖擊。
最近一年多來,移動端在做腳本化開發(fā)方案的公司越來越多。cocos2d 開源社區(qū)很早就提出了用 js 打通各個分支版本的設(shè)想,底層執(zhí)行方式是各個分支引擎的(-x,-iphone,html5),上層統(tǒng)一使用 js,使得項(xiàng)目可以很方便的在各個引擎之間互換。
從游戲開發(fā)來看,c++ 和 js 各具優(yōu)勢,兩者結(jié)合威力無窮。前不久,cocos2d 社區(qū)進(jìn)行了一次聯(lián)合發(fā)布,邁出了關(guān)鍵的一步。本系列將是我學(xué)習(xí) cocos2d-x for js 的一些心得體會。
cocos2d-x for js 是 cocos2d-x 的一部分,他使用 js 做腳本,底層使用 c++ 運(yùn)行,在提升開發(fā)速度同時(shí),保證了執(zhí)行效率。
首先,我們下載cocos2d-x的最新版本
http://cocos2d-x.googlecode.com/files/cocos2d-2.1beta3-x-2.1.0.zip
該版本中有好幾個 js 游戲的例子:CocosDragonJS,MoonWarriors,WatermelonWithMe
我們暫時(shí)不使用其他 IDE 了,對于 cocos2d-x 的開發(fā)者來說,手頭最現(xiàn)成的工具就是vs。用 vs2010 打開工程,蛋疼的發(fā)現(xiàn),里面既沒有 js 代碼,也沒有 c++ 代碼。只有一個 spidermonkey 的 js 解釋器,還有一個 win32 版 cocos2d-x 的殼。
http://wiki.jikexueyuan.com/project/cocos2d-x-from-cplusplus-js/images/1.jpg" alt="" />
好吧,首先我們需要導(dǎo)入 js 的源代碼,很不幸,這個項(xiàng)目的js源碼也沒有放在 MoonWarriors 的目錄下,而是在 cocos2d-2.1beta3-x-2.1.0\samples\TestJavascript\cocos2d-js-tests\games\MoonWarriors 這個文件夾中 我們把這里面的代碼導(dǎo)入到 MoonWarriors 項(xiàng)目中。
http://wiki.jikexueyuan.com/project/cocos2d-x-from-cplusplus-js/images/2.jpg" alt="" />
好吧,這個目錄結(jié)構(gòu)比較蛋疼。但是勉強(qiáng)能看了。 但是又遇到了另外一個問題,我們在 js 源代碼中,沒法.出來代碼,自動完成功能幾乎是無效的。番茄只能提示出當(dāng)前 js 文件中的代碼,在其他文件中的代碼,沒法提示出來。尤其是引擎中的 js 接口。這個實(shí)在太要命了。 我查了半天,發(fā)現(xiàn) cocos2d-2.1beta3-x-2.1.0 引擎中,根本沒有 js 版本的代碼。也就是說,他們只是用 spidermonke y把 js 的接口綁定成了 c++ 的。這可如何是好呢?沒代碼就沒法使用自動完成。
呵呵,之前我們說過,這次是一次聯(lián)合發(fā)布,也就是說各個版本的 js 接口應(yīng)該是一致的,也就是說我們可以使用 html5 版本的js代碼,來協(xié)助完成代碼提示。
去下一 個html5 引擎
http://cocos2d-x.googlecode.com/files/Cocos2d-html5-v2.1.zip
打開后發(fā)現(xiàn),我們要的代碼在這四個文件夾里
http://wiki.jikexueyuan.com/project/cocos2d-x-from-cplusplus-js/images/3.jpg" alt="" />
把他們也導(dǎo)入到項(xiàng)目中
http://wiki.jikexueyuan.com/project/cocos2d-x-from-cplusplus-js/images/4.jpg" alt="" />
然后,我們隨便打開一個項(xiàng)目源代碼,就可以.出來了。自動完成可以使用,哦也。
http://wiki.jikexueyuan.com/project/cocos2d-x-from-cplusplus-js/images/5.png" alt="" />
打完收工。