DorothyCocos2d-x-Lua 的分支
Dorothy是Cocos2d-x-Lua的另一個(gè)分支,基于原始版本2.1rc0版再次開(kāi)發(fā)的框架。之所以開(kāi)始在這個(gè)版本上做自定義的開(kāi)發(fā),是 因?yàn)槲以诟S原版的更新,持續(xù)做開(kāi)發(fā)的過(guò)程中,發(fā)現(xiàn)它的功能漸漸變得又多又雜,吸納了各式各樣的擴(kuò)展,光是骨骼動(dòng)畫(huà)的擴(kuò)展就重復(fù)增加了兩套代碼。并且它的 擴(kuò)展的開(kāi)發(fā)我覺(jué)得定制得也不夠深入,除了引入更多bug坑以外,并沒(méi)有簡(jiǎn)化太多的開(kāi)發(fā)工作。此外原版的Lua接口是幾乎完全依賴(lài)tolua++自動(dòng)生成 的,導(dǎo)出了很多沒(méi)有意義的接口,并生成很多冗余的綁定代碼,并且tolua++的綁定機(jī)制也太過(guò)于通用化,沒(méi)有很好地利用Cocos2d-x的特性。
所以一方面為了精簡(jiǎn)核心框架,另一方面又提供更加深度定制的輔助框架,優(yōu)化Lua綁定代碼,我漸漸地竟然寫(xiě)出了這樣一個(gè)分支版本來(lái)。
這個(gè)分支提供了更加精簡(jiǎn)的API接口。移除了原版中不是特別核心的擴(kuò)展功能,添加了更有用的特性,修復(fù)了原版的一些bug,并且改善了Lua綁定的核心代碼和tolua++生成的綁定代碼。
下圖是 Android 下的運(yùn)行效果:
特性
移除部分
-
使Cocos2d-x只作為純粹的圖形引擎存在(幾乎移除了全部擴(kuò)展)
-
使Box2D作為唯一的物理引擎(移除了chipmunk)
-
使Lua作為唯一的腳本引擎(移除了Javascript)
-
只將在編寫(xiě)腳本邏輯層面上有意義的接口導(dǎo)出到Lua(Lua的用戶(hù)不應(yīng)該需要知道C++層的實(shí)現(xiàn)細(xì)節(jié)來(lái)使用腳本接口,為了確定和精簡(jiǎn)應(yīng)該導(dǎo)出的接口,我花了數(shù)月時(shí)間陸續(xù)通讀了Cocos2d-x的每一個(gè)函數(shù)實(shí)現(xiàn),最終篩選出一部分我認(rèn)為真正有必要的類(lèi)和接口)
