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工程中,均以配置好。