lua绑定之后,我们需要修改项目,将绑定后的文件正确的引入到c++工程里面,才能在lua层进行正常的调用。
1.lua-binding
具体的lua绑定操作在cocos2d-x/tools/tolua/genbindings.py
,正确binding后,lua对应的c++绑定代码位置在
cocos2d-x/cocos/scripting/lua-bindings/auto
2.引入binding代码
libluacocos2d项目解决方案里面添加现有项
,将hpp、cpp文件引用到项目:

可能遇到的问题:
- 在hpp里面,找不到头文件,在项目属性里面添加
附加包含目录
即可
- 参数无法转换:
![]()
这种情况一般都是lua-binding
的cocos2d-x/tools/bindings-generator/targets/lua/conversions.yaml
的配置中,关于类型转换没有覆盖到这个接口造成的。具体解决方案参考这里。
3.项目解决方案修改
在项目解决方案的AppDelegate.cpp
里面,有注册lua模块的入口
bool AppDelegate::applicationDidFinishLaunching(){
// ...
lua_module_register();
// ...
}
跳转到lua_module_register.cpp
里面,进行如下修改:
// 1.引入lua-binding生成的hpp头文件
#include "scripting/lua-bindings/auto/lua_cocos2dx_xxx_auto.hpp"
int lua_module_register(lua_State* L){
// 2.调用注册模块接口
register_all_cocos2dx_xxx(L);
}
重新编译项目,在lua中就能正确使用接口了
网友评论