Cocos2dx lua 3.10版本绑定cjson流程

本文介绍如何在Cocos2dxLua中引入cjson库以提高JSON处理效率,包括修改lua_extensions.c文件和在Android.mk中添加必要的源文件。

如题,使用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平台暂时未处理,待续~~~




                
### 如何将 Cocos2d 3.10 版本中的 Spine 运行升级到 3.6 版本Cocos2d-x 中,Spine 是一个非常流行的骨骼动画工具,其运行的升级需要特别注意文件结构和绑定逻辑的变化。以下是关于如何将 Cocos2d 3.10 中的 Spine 运行升级到 3.6 版本的具体说明: #### 1. 准备工作 首先,确保下载最新的 Spine 运行版本(如 Spine 3.6)。可以从官方仓获取对应的 `spine-runtimes` 源码[^2]。此外,准备以下环境: - 确保安装了 Python 2.7.3- 下载并配置 Android NDK r9b。 - 安装 PyYAML 和 PyCheetah,并正确设置环境变量(包括 Python 和 NDK_ROOT)。 #### 2. 替换 Spine-Cpp 文件 删除 Cocos2d-x 中原有的 Spine 文件夹内容(保留目录结构),然后将 Spine 3.6 的 `spine-cpp` 目录下的所有文件拷贝到以下路径中: ```plaintext cocos2d-x/cocos/editor-support/spine/ ``` 具体操作步骤如下: - 删除原有 `cocos2d-x/cocos/editor-support/spine/` 下的所有文件(除了目录本身)。 - 将 `spine-runtimes-3.6/spine-cpp/include/spine` 和 `spine-runtimes-3.6/spine-cpp/src/spine` 中的所有文件复制到上述路径下[^2]。 #### 3. 添加 Spine-Cocos2dx 支持 接下来,从 `spine-runtimes-3.6/spine-cocos2dx/src/spine` 目录中,将所有文件拷贝到 `cocos2d-x/cocos/editor-support/spine/` 目录下。同时,确保将 `spine-runtimes-3.6/spine-cocos2dx/v3` 目录下的文件也一并拷贝到同一路径中。 #### 4. 修改 Lua 绑定代码 由于 Cocos2d-x 3.x 使用了 `bindings-generator` 脚本来生成 Lua API,因此需要重新生成 Lua 绑定代码以支持新的 Spine 运行版本。具体步骤如下: - 打开 `cocos2d-x/tools/tolua` 目录,查看 `README.mdown` 文件中的说明[^4]。 - 确保环境变量已正确配置后,运行以下命令以生成 Lua API: ```bash python genbindings.py ``` 此命令会根据新的 Spine 运行生成相应的 Lua 绑定代码。 #### 5. 替换旧的 Lua 绑定文件 将新生成的 Lua 绑定文件替换掉原有的绑定文件。通常,这些文件位于以下路径中: ```plaintext cocos2d-x/cocos/scripting/lua-bindings/manual/spine/ ``` 将新生成的 4 个文件(如 `manual_spine.cpp` 等)复制到该路径下,并替换原有的文件[^2]。 #### 6. 测试与调试 完成上述步骤后,编译项目并测试是否正常运行。如果出现错误,可能需要手动调整部分代码以适配新的 Spine 运行版本。 ```python # 示例:检查 Lua 绑定是否成功 import spine if spine.is_loaded(): print("Spine runtime loaded successfully!") else: print("Failed to load Spine runtime.") ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值