古詩詞大全網 - 四字成語 - Quick cocos2dx與cocos2dx有什麽區別

Quick cocos2dx與cocos2dx有什麽區別

那 quick 與 cocos2d-x 相比到底有什麽區別,又有什麽加強呢?這篇文章就是答案:

為什麽會有 quick

quick 和 cocos2d-x 的差別

quick 由哪些部分組成

應該選擇 Lua 還是 JavaScript

怎麽入門 quick

為什麽會有 quick

cocos2d-x 是壹個用 C++ 開發的遊戲引擎,其架構設計和 API 基本上是照搬的 cocos2d-iphone(壹個用 Objective-C 的 iOS 遊戲開發引擎)。

由於 C++ 對開發人員要求較高,所以網龍科技利用 tolua++ 這個工具,將 cocos2d-x 的 C++ 接口轉為了 Lua 接口(這種將 C++ 接口導出為 Lua 接口的庫通常稱為 luabinding)。讓開發者可以使用 Lua 這種簡單易懂的腳本語言來編寫遊戲,從而大大提高開發效率。

大概在 2012 年上半年,我們公司開始使用 cocos2d-x + Lua 來開發遊戲。但是發現當時 cocos2d-x 對 Lua 的支持還存在相當多不完善的地方。所以我重寫了整個 luabinding 的支持代碼,解決了內存泄露、只能使用全局函數做回調等問題。

在 cocos2d-x 2.0 發布後,luabinding 又進行了不少改進和完善。截止到 cocos2d-x 2.1.4,整個 luabinding 已經可以說是相當穩定了。所以《我是 MT》、《大掌門》這些賺錢像印錢的遊戲,就紛紛采用 cocos2d-x + Lua 的解決方案了。

可惜 cocos2d-x 團隊從 2012 年以來壹直在強力推廣 cocos2d-x 的 JavaScript 解決方案,所以在 Lua 支持上基本上就沒有什麽大動作了。而從我們使用 Lua 解決方案的開發商看來,需要 luabinding 具備更強大的功能,因此這就是我們開發 quick 的最初原因。

quick 的目標:

降低學習曲線

提高易用性

創建壹個精簡、但更容易擴展的架構

quick 和 cocos2d-x 的差別

雖然 cocos2d-x luabinding 已經很完善了,但是要開發壹個遊戲,我們還需要做許多基礎工作。

將 luabinding 導出的 C++ 接口重新封裝成 Lua 風格的接口是最基本的工作。重新封裝後的接口應該更容易學習和使用,並且壹些 C++ 和 Lua 之間數據格式轉換也應該隱藏起來。而這就是 quick 裏首先實現的目標。