1. 程式人生 > >Cocos2dx lua 3.10版本繫結cjson流程

Cocos2dx lua 3.10版本繫結cjson流程

如題,使用cocos2dx lua自帶的json效率很低,接入cjson來處理:

1、找到 frameworks\cocos2d-x\cocos\scripting\lua-bindings\manual\network\lua_extensions.c,修改:

#include "lua_extensions.h"

#if __cplusplus
extern "C" {
#endif
// socket
#include "luasocket/luasocket.h"
#include "luasocket/luasocket_scripts.h"
#include "luasocket/mime.h"
#include "lua/cjson/lua_cjson.h"

static luaL_Reg luax_exts[] = {
    {"socket.core", luaopen_socket_core},
    {"mime.core", luaopen_mime_core},
	{"cjson", luaopen_cjson },
    {NULL, NULL}
};

void luaopen_lua_extensions(lua_State *L)
{
    // load extensions
    luaL_Reg* lib = luax_exts;
    lua_getglobal(L, "package");
    lua_getfield(L, -1, "preload");
    for (; lib->func; lib++)
    {
        lua_pushcfunction(L, lib->func);
        lua_setfield(L, -2, lib->name);
    }
    lua_pop(L, 2);

    luaopen_luasocket_scripts(L);
}

#if __cplusplus
} // extern "C"
#endif

2、android打包庫裡新增:  frameworks\cocos2d-x\cocos\scripting\lua-bindings\proj.android\Android.mk

          ../../../../external/lua/cjson/strbuf.c \
          ../../../../external/lua/cjson/fpconv.c \
          ../../../../external/lua/cjson/lua_cjson.c \
3、ios平臺暫時未處理,待續~~~