quick-cocos2d-x 导出 C/C++ API 给 Lua 使用

最近因为需要使用quick-cocos2d-x ,很想使用以前自己用c++写的代码。学着来将C++的接口导出给Lua用,哎,因为个人水平问题一直有问题。用了两天时间才搞好。

参考:http://cn.quick-x.com/?p=235   和   http://www.codeo4.cn/archives/746


一直卡在最后步:官网的说得有点不清楚,最后自己查看源代码仿照来做,才发现问题所在。

官网最后步

载入 luabinding 接口文件

打开我们的项目,将 MyClass_luabinding.cpp 和 MyClass_luabinding.h 文件加入工程。然后修改 AppDelegate.cpp 文件:

  1. 在 AppDelegate.cpp 头部区域添加:
    #include "MyClass_luabinding.h"
  2. 在 AppDelegate::applicationDidFinishLaunching() 函数内添加:
    luaopen_MyClass_luabinding(L);

    注意这一行代码应该添加在其他 luaopen 函数后面,例如:

    // register lua engine
    CCLuaEngine *pEngine = CCLuaEngine::defaultEngine();
    CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
    
    CCLuaStack *pStack = pEngine->getLuaStack();
    lua_State* L = pStack->getLuaState();
    
    // load lua extensions
    luaopen_lua_extensions(L);
    // load cocos2dx_extra luabinding
    luaopen_cocos2dx_extra_luabinding(L);
    
    // thrid_party
    luaopen_third_party_luabinding(L);
    
    // CCBReader
    tolua_extensions_ccb_open(L);
    
    // MyClass
    luaopen_MyClass_luabinding(L);

    应该将我们的代码追加到 tolua_extensions_ccb_open() 后面。

经过上述修改后,重新编译运行项目应该就可以在 Lua 脚本中使用我们导出的 MyClass 对象极其方法了。

注意红色字:重新编译运行。找到自己新建的项目sources目录将你 MyClass_luabinding.cpp 和 MyClass_luabinding.h ,和MyClass.h ,MyClass.cpp 全放到里面。找到proj.ios目录打开xcode ,编译。如果有错就将上面四个文件添加到你编译环境里。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值