隨著移動遊戲市場爆發,開發成本持續走高。以 C++ 為代表的傳統開發語言,正面臨 Lua、JavaScript 等腳本語言的強勢衝擊。近年來,採用腳本化開發方案的移動端遊戲公司越來越多。cocos2d 開源社區早已提出用 JavaScript 打通各分支版本(-x、-iphone、html5)的設想:底層由各引擎原生運行,上層統一使用 JS,讓專案能在不同引擎間無縫切換。
從遊戲開發角度看,C++ 與 JS 各有優勢,結合使用威力無窮。前不久 cocos2d 社區進行聯合發布,邁出關鍵一步。本系列將記錄我學習 cocos2d-x for JS 的心得體會。
cocos2d-x for JS 屬於 cocos2d-x 一部分,採用 JS 作為腳本層,底層由 C++ 運行,在提升開發速度的同時保證執行效率。
下載地址:cocos2d-2.1beta3-x-2.1.0.zip
該版本包含多個 JS 遊戲範例:CocosDragonJS、MoonWarriors、WatermelonWithMe。
用 VS2010 打開工程發現:專案中既無 JS 代碼,也無 C++ 代碼,只有一個 SpiderMonkey JS 解釋器和一個 Win32 版 cocos2d-x 的殼。

JS 源碼並不在 MoonWarriors 目錄下,而是位於:
cocos2d-2.1beta3-x-2.1.0\samples\TestJavascript\cocos2d-js-tests\games\MoonWarriors
將此處代碼導入 MoonWarriors 專案:

導入後發現 JS 源碼無法使用自動完成功能,VS 僅能提示當前文件內代碼,跨文件引用及引擎 JS 接口完全無提示,這對開發效率打擊極大。經排查,cocos2d-x 2.1 版本引擎中根本沒有 JS 版本的接口代碼,只是用 SpiderMonkey 將 JS 接口綁定到 C++。
由於是聯合發布,各版本 JS 接口應保持一致。下載 HTML5 引擎:Cocos2d-html5-v2.1.zip
解壓後在四個文件夾中找到所需接口代碼:

將其導入專案:

隨便打開一個專案源文件,代碼提示完美生效:

大功告成!
本文出自 “老G的小屋” 博客,轉載請保留出處:原文鏈接