所谓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++函数