所謂lua綁定就是說在lua中可以調用c++的類或者函數,整個過程細分為九步
1.下載配置環境
2.編寫定義的c++類
3.修改ini文件
4.修改genbindings.py
5.運行genbindings.py
6.修改lua_cocos2dx_custom_auto.cpp文件
7.注冊給lua使用
8.導入vs編譯
9.調用
1.下載配置環境
如果你寫過cocos2dx的工程,那么你應該存在python這一最基本的環境。l
ua綁定需要如下環境:
1.python:版本2.7.5 ,在系統變量中的path后加上python的安裝路徑,一般都是c/python27
2.ndk:版本ndk-r9d,在系統變量中新添變量名NDK_ROOT,變量為ndk解壓的目錄
3.下載PyYAML-3.10.win32-py2.7.exe,安裝到python目錄下,一般會自動安裝到python目錄下,無需手動選擇。
4.下載Cheetah,將其放在C:\Python27\Lib\site-packages目錄下
2.編寫定義的c++類
c++類可以寫在任何地方,個人習慣,筆者在
工程目錄/frameworks\cocos2d-x\cocos
下新建一個custom文件夾,將自定義類放在其中。
3.修改ini文件
首先找到
工程目錄\frameworks\cocos2d-x\tools\tolua
復制一份cocos2dx.ini并改名為cocos2dx_custom.ini,打開cocos2dx_custom.ini。
做如下修改
修改圖中四個地方,注意修改成自己的類名
target_namespace = cc表示命名空間
如果有多個類要綁定,則用空格隔開
4.修改genbindings.py
該文件在
工程目錄\frameworks\cocos2d-x\tools\tolua
打開genbindings.py文件
在cmd_args 中加入
'cocos2dx_custom.ini' : ('cocos2dx_custom', 'lua_cocos2dx_custom_auto'), \
注:python注釋為#,這里將cmd_args其他的元素注釋掉是因為這些文件都是生成過得,沒必要再生成浪費時間
這行代碼表示在cocos2dx_custom中找到cocos2dx_custom的模塊,然后生成lua_cocos2dx_custom_auto文件
5.運行genbindings.py
通過cmd的cd命令直接進入到tolua的mlu下,運行genbindings.py
出現如圖所示就說明橋接文件生成成功了。
6.修改lua_cocos2dx_custom_auto.cpp文件
上一步后,在
工程目錄\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto
下便有了兩個生成的文件
lua_cocos2dx_custom_auto.cpp
lua_cocos2dx_custom_auto.hpp
打開
lua_cocos2dx_custom_auto.cpp
文件,修改成如圖所示
7.注冊給lua使用
進入到文件夾
C:\Users\user\Documents\Cocos\Link\frameworks\cocos2d-x\cocos\scripting\lua-bindings\manual
打開CCLuaStack.cpp,添加
#include "lua_cocos2dx_custom_auto.hpp"
register_all_cocos2dx_custom(_state);
8.導入vs編譯
導入自定義的cpp和h文件
導入cpp和hpp文件
編譯后沒問題就可以在lua中調用我們自定義的c++類了。
9.調用
在lua中通過
cc.自定義類名:函數名()
來調用c++函數