cocos2dx 3.x 版本已經出到3.10了,終於決定要進行引擎版本升級,c++配合lua進行游戲開發,從3.x版本開始cocos使用了新的tolua方式,由於不懂python,折騰tolua搞的心累,網上各種百度搜索了半天也不見一個系統的教程,在這里我把這兩天的工作總結下,希望有碰到同樣問題的朋友能夠快速解決。
先說下,系統Mac OS 10.10,cocos引擎版本3.10,ndk使用r10e,python2.7.
1、配好環境變量,NDK_ROOT,COCOS2D-X相關的環境變量自行配好,由於r10e里面只有llvm3.5和3.6,並沒有llvm3.3和3.4,所以我從r9d里面把llvm3.3和3.4copy到了r10e相應目錄下,這個務必拷貝齊全,要不然各種坑。
2、創建cocos2dx-lua項目,先看下游戲項目目錄:

要進行tolua需要修改的就是最后一個目錄下的*.ini文件和genbindings.py,這里還需要注意一下userinfo.ini文件,這個是工程相關的一些配置,看下里面的內容

這些內容其實是運行下圖紅圈中的文件生成的

理一下執行順序,運行第一步里面的genbindings.py首先會檢查環境變量。然后向userinfoconf.ini寫入相關路徑的配置,最后調用generator.py生成tolua的c++文件。
3、為了使目錄結構清晰,自定義的c++類肯定需要放在項目的Classes文件夾下面,Classes文件夾在整個項目工程的位置看下圖:

再看下在genbindings.py里面設置的路徑

這里最高的層級路徑只是到了cocos2d-x這個文件夾,為了在自定義類里面方便的配置頭文件路徑,在這里,添加一個路徑配置,如上圖的customclass_root,這個路徑就是整個項目的根路徑,它的下一級文件夾就是frameworks這一級,這樣,在添加Classes里面的自定義類的時候就方便了(解釋下配置里的那四個'..',如果不添加這個四個,路徑就是在第一幅圖的tolua文件夾,加上就是向上返回四級目錄,剛好就是項目文件夾跟目錄)。
4、在Classes里面添加自定義類myclass,第三部步第一幅圖里面看到的那樣,里面內容很簡單:
頭文件:
實現文件:
然后就需要去修改相應的配置文件了首先需要添加一個myclass的ini配置文件,然后修改genbindings.py,這里建議是重新抄一份genbindings.py出來,里面只添加自定義的類,這樣就不會影響到引擎本省的一些類的tolua,具體怎么修改請參看http://www.cocoachina.com/bbs/read.php?tid=196416,我也是參看這篇教程摸索出來的,容易出問題的部分就是自定義類的頭文件那里,在第三步的時候我自定義了一個項目的根路徑,這樣在添加頭文件路徑時就方便很多:

這里的projectdir就是第三步的customclass_root,在存到userinfoconf.ini里面使用的key是projectdir,具體可以參看第三步的圖,最后在執行抄過來的genbindings.py,我自己的是genbindings_myclass.py,就可以了,最后看下生成的userinfoconf.ini:

tolua文件的生成路徑在上面的鏈接教程里面有說,需要的朋友自己去看下。
