LUA C 交互 cocos

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LUA C 交互 cocos相关的知识,希望对你有一定的参考价值。

注册 函数给Lua使用 lua_newtable(L); lua_pushstring(L, "callStaticMethod"); lua_pushcfunction(L, LuaCBridge::callCStaticMethod); lua_rawset(L, -3); lua_setglobal(L, "LuaCBridge"); int LuaCBridge::callCStaticMethod(lua_State* L) { log("callCStaticMethod======"); const char *action_key = lua_tostring(L, 1); const char *action_value = lua_tostring(L, 2); const char *content = lua_tostring(L,3); // log("actionkey=%s",action_key); if (!action_key || !action_value) { lua_newtable(L);//创建一个表格,放在栈顶 lua_pushstring(L, "res");//压入key lua_pushnumber(L, 1);//压入value lua_settable(L, -3);//弹出key,value,并设置到table里面去 return 1;//堆栈里现在就一个table.其他都被弹掉了。 } else { lua_newtable(L);//创建一个表格,放在栈顶 lua_pushstring(L, "res");//压入key lua_pushnumber(L, 1);//压入value lua_settable(L, -3);//弹出key,value,并设置到table里面去 lua_pushstring(L, "data");//压入key lua_pushstring(L, "json");//压入json格式data lua_settable(L,-3);//弹出key,value,并设置到table里面去 // lua_newtable(L);//压入value,也是一个table // lua_pushstring(L, "userId");//压入subtable的key // lua_pushnumber(L,53);//value // lua_settable(L,-3);//弹出key,value,并设置到subdata table // lua_settable(L,-3);//这时候父table的位置还是-3,弹key,value(subtable),并设置到table里去 // lua_pushstring(L, "mydata2");//同上 // lua_pushnumber(L,77); // lua_settable(L,-3); } return 1; } C调用lua全局函数 //c call lua /* 把CCallLua函数对象放到栈中 */ // lua_getglobal(L, "CCallLua"); // lua_newtable(L); // lua_pushstring(L, "res");//压入key // lua_pushnumber(L, 1);//压入value // lua_settable(L, -3);//弹出key,value,并设置到table里面去 // lua_pushstring(L, "data");//压入key // lua_pushstring(L, "jsondata");//压入json格式data // lua_settable(L, -3);//弹出key,value,并设置到table里面去 // /* // 执行函数,第一个参数表示函数的参数个数,第二个参数表示函数返回值个数 , // Lua会先去堆栈取出参数,然后再取出函数对象,开始执行函数 // */ // lua_call(L, 1, 1);

以上是关于LUA C 交互 cocos的主要内容,如果未能解决你的问题,请参考以下文章

Cocos 2d-X Lua 游戏添加苹果内购 OC和Lua交互代码详解

(转)Cocos 2d-X Lua 游戏添加苹果内购 OC和Lua交互代码详解

COCOS2DX-LUA 脚本开发之八不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!

(转)Cocos 2d-X Lua 游戏添加苹果内购 图文详解准备流程

Lua与C/C++交互——C/C++调用Lua脚本

Lua与C/C++交互