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 ,编译。如果有错就将上面四个文件添加到你编译环境里。

你可能感兴趣的:(quick-cocos2d-x 导出 C/C++ API 给 Lua 使用)