您的位置:首页 > 移动开发 > Cocos引擎

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

2014-03-31 13:47 477 查看
最近因为需要使用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 文件:

在 AppDelegate.cpp 头部区域添加:
#include "MyClass_luabinding.h"


在 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 ,编译。如果有错就将上面四个文件添加到你编译环境里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: