Lua与C相互调用

Lua调用C

engine->getLuaStack();

tolua_open(L);

tolua_module(L, NULL, 0);

tolua_beginmodule(L, NULL);

tolua_function(L, "changeScene", lua_cocos2dx_changeScene);

tolua_endmodule(L);

定义C函数

static int lua_cocos2dx_changeScene(lua_State * L) {

blablablabla...

}

C调用Lua

LuaEngine * engine = LuaEngine::getInstance();

ScriptEngineManager::getInstance()->setScriptEngine(engine);

engine->executeScriptFile("lua/hello.lua");

使用Cocos创建Lua工程

#include "CCLuaEngine.h"

#include "lua_module_register.h"

bool AppDelegate::applicationDidFinishLaunching()

{

auto engine = LuaEngine::getInstance();

ScriptEngineManager::getInstance()->setScriptEngine(engine);

lua_State* L = engine->getLuaStack()->getLuaState();

lua_module_register(L);

// If you want to use Quick-Cocos2d-X, please uncomment below code

// register_all_quick_manual(L);

if (engine->executeScriptFile("src/main.lua")) {

return false;

}

return true;

}

在Cocos C++工程中,可使用一些Lua插件,也可以使用Lua.h中的API运行Lua模块。

在Cocos Lua工程中,均以配置好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容