lua文件自动封装如下:
local Result = {}
local result={}
setmetatable(result, luaExtend)
function Result.create(callBackProvider) --实际就是这个不懂
…
result’root’] = Scene
local Scene=cc.Node:create()
return result
end
return Result
问题1:
在lua调用如下:local csLuaScene = require(“Scene.lua”).create()
但c++该如何调用?
LuaEngine::getInstance()->executeScriptFile(“Scene.lua”);
auto scene = (Scene *)lua_topointer(L, -1); //返回的Result是什么类型也没弄清楚。。。
//然后怎么调用create函数?
或者我使用请他方式:
lua_getglobal(L, " Result.create"); --怀疑这个获取有问题
if (!lua_isfunction(L, -1))
{
lua_pop(L, 1);
}
else
{
lua_pcall(L, 0, 0, 0);
}
问题2:
在VS编译过程中,解析lua出现了好多下面找不到cc.xxx的问题,该如何解决, 需要修改生成的lua文件吗?
attempt to call global ‘cc.rect’ (a nil value)
attempt to call global ‘cc.c3b’ (a nil value)
attempt to call global ‘cc.p’ (a nil value)
cc.Node这些基本的都没问题,我已经调用了lua_module_register(L),还少什么呢
int lua_module_register(lua_State* L)
{
register_ui_moudle(L);
//extension module must be registed after ui module
register_extension_module(L);
register_cocostudio_module(L);
register_cocosbuilder_module(L);
register_spine_module(L);
register_network_module(L);
register_cocosdenshion_module(L);
register_cocos3d_module(L);
register_audioengine_module(L);
return 1;
}