Cocos2d lua绑定工具使用
Cocos2d的绑定工具其实就是对C++与Lua的交互的封装,C++与Lua通过LuaStack桥接实现通讯,即:一方压入数据,一方取出数据。官方给出两种方法绑定,一种是自动的,一种的手动的。自动主要用于大规模的绑定,小规模用手动即可。
自动绑定
笔者自动绑定主要是参考简书上的一篇文章操作的,读者参考:
https://www.jianshu.com/p/0f1e7d136863
操作即可,这里主要记录下遇到的坑。
Python相关问题
- 提示非Win32接口:使用Python x86版本,笔者电脑上的Clang库是x86的。
- 提示import的模块找不到:没有那个装哪个,装了Python的Pip工具的话会很方便。命令操作“pip+install+模块(版本)”即可
NDK相关问题
- 提示“*.h”找不到:主要是标准库找不到。这里笔者把NDKr10d 换成 NDKr9d 。应该也可以设置标准库路径解决。
手动绑定
手动绑定其实更加简单点,如果只是添加几个接口的话。
通过自动绑定,生成了以上两个文件,有一个叫“lua_cocos2dx_test_Test_printID”的接口,如果需要增加新接口,可以模仿这个接口的绑定方法。
添加你要绑定的接口:
int lua_cocos2dx_test_Test_printID(lua_State* tolua_S)
{
...
if (argc == 0)
{
if(!ok)
return 0;
cobj->printID();
return 0;
}
...
}
加上你要注册的接口:
lua_register_cocos2dx_test_Test
{
...
tolua_beginmodule(tolua_S,"Test");
tolua_function(tolua_S,"new",lua_cocos2dx_test_Test_constructor);
tolua_function(tolua_S,"printID",lua_cocos2dx_test_Test_printID);
tolua_function(tolua_S,"create", lua_cocos2dx_test_Test_create);
tolua_endmodule(tolua_S);
...
}
总结
Lua绑定这块自动绑定的工具使用有门槛,不懂Python的小伙伴遇到一些坑时可能会有点头痛。感叹一句,工具便捷的体现总是在你熟悉它之后。