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中就能正确使用接口了