cocos2dx + Lua + json能达到不更新安装包本地更新吗?
来源:互联网 发布:菊花泡水后变绿 知乎 编辑:程序博客网 时间:2024/05/21 07:48
JSON是 JavaScript Object Notation的简称,是一种轻量的数据表示方法。json格式采用key:value的方式记录数据,非常直观,比XML简洁,因而大受欢迎
介绍json格式前,先让我们看看XML格式。显然,XML 得到了相当多的关注(正面和负面的评价都有),已经在 ajax 应用程序中广泛使用:
介绍json格式前,先让我们看看XML格式。显然,XML 得到了相当多的关注(正面和负面的评价都有),已经在 ajax 应用程序中广泛使用:
<request> <firstName>PeterCao</firstName></request>
现在大部分iOS手机软件的更新模式,都受控于苹果APPStore。那么如何才能越过雷池呢?有人在看到《大掌门》的辉煌之后,提议用Lua。但我们都知道,类似于Lua这样的脚本语言,都只是作为辅助功能或者扩展功能来体现他们的价值。在cocos2dx中,其是通过tolua++来把C++的类注册到Lua之中,从而使该类在Lua中能够运用自如。因此,这就意味着,只要自定义一个C++类就必须要通过修改build.xml并且写一个pkg类来映射到tolua++中,从而注册到Lua中。这样的话,我们制定好的网络协议,万一又要添加,是不是就要修改C++代码添加新类呢?答案当然是不行的,否则就违背了我们想要本地更新的初衷了。那么我们就想到了轻量级的数据转换格式json。我们所有的网络数据需要发送的内容,都通过lua的table封装好后,通过json进行转换成指定的格式。然后透传给c++,通过c++进行加密,封装包头,然后发送出去,是不是就不用修改该c++代码了呢?好了,想到这儿,我就到网上搜索了Lua转换json的库,(cjson)
具体实现如下:
一、必备的cjson文件8个放在同一个文件夹下,导入到工程中(记得一定要link你自定义的路径)
二、找到AppDelegate.cpp,添加如下代码:
添加头文件:#include "lua_extentions.h"
在applicationDidFinishLaunching函数中,注册luaengine注册完之后,添加如下代码:
CCLuaStack *pStack = pEngine->getLuaStack(); lua_State* L = pStack->getLuaState(); luaopen_lua_extensions(L);之后就可以根据自己的情况,在lua中封装自己的网络发送消息,和接受消息了。
- cocos2dx + Lua + json能达到不更新安装包本地更新吗?
- cocos2dx lua 热更新
- cocos2dx lua 热更新
- cocos2dx lua 热更新
- cocos2dx lua 热更新
- lua热更新都能更新什么
- cocos2dx LUA 读取本地JSON文件
- cocos2dx LUA 读取本地JSON文件
- 5------Cocos2dx-- 资源热更新(lua)
- cocos2dx-lua 3.x 热更新方法
- cocos2dx 使用Json(用于游戏更新)
- cocos2dx 使用Json(用于游戏更新)
- shopex虚拟分类后台不更新前台能更新问题
- cocos2dx 3.1.1 Lua相对于2.X的更新
- 三 cocos2dx 安卓安装包整包更新
- 服务器更新python安装包
- cocos2dx lua json解析
- JAVA并发包(不定时更新)
- win7 java环境变量设置
- 小感
- KVM直接启动虚拟机
- OpenMP中的数据处理子句
- rcp修改右键菜单(eclipse3.7.2)
- cocos2dx + Lua + json能达到不更新安装包本地更新吗?
- 405. The finest diamond must be cut. 玉不琢,不成器
- Hibernate整体体验
- 虚拟机VLAN网络配置
- 第十一章 图像之清屏
- jdom xpath定位带xmlns命名空间的节点
- A easy way to use C# to Parse a URL
- 移值FFMPEG到iPhone或Mac OS/X
- NULL