cocos2d-lua 下使用protobuffer

为了减少手机客户端与服务交换的数据量,项目决定使用protobuffer

相关的protobuffer介绍:https://developers.google.com/protocol-buffers/docs/overview

下面介绍我是怎么在我项目中安装protobuffer的,不足之处请指出

环境

1.mac  Xcode

2.cocos2d-lua 3.9 版本

3.protoc-gen-lua: https://github.com/sean-lin/protoc-gen-lua

4.protobuf:https://code.google.com/p/protobuf/(翻墙获取)

安装说明

1.pb.c文件相关配置

  1.1 在下载的protoc-gen-lua中$protobuf/路径下的"pb.c"文件放到cocos2d项目目录中,并添加到项目中


  1.2进入游戏入口“AppDelegate.cpp”文件

      1.2.1在文件的头部添加:

      extern"C" {    int luaopen_pb(lua_State* L);} 如下图

   

     1.2.2 在文件applicationDidFinishLaunching()方法实现处添加

luaopen_pb(LuaEngine::getInstance()->getLuaStack()->getLuaState());

注意:这里需要添加到所有绑定 lua 接口的后面,因为 luaopen_pb() 会改变 lua 的全局环境

2.将$lua-protobuf/protoc-gen-lua/protobuf/路径下的全部.lua文件copy到cocos2dx项目的lua开发目录


3.在游戏lua的主函数main.lua文件中添加搜索protobuf的搜索目录,上图的搜索目录添加为:

cc.FileUtils:getInstance():addSearchPath("src/app/network/protobuf/")

4. 在游戏lua的主函数main.lua文件中require一下protobuf目录下所有的“.lua”文件

5.修改刚添加protobuf目录下的所有“.lua”文件,在文件的末尾加入“return _M” 将lua的局部变量返回出来

6.调用(proto文件生成的)lua对象的“.lua”文件的时候必须在main.lua文件中的require "cocos.init"前先require一下(cocos.init会对全局_G做修改,使其不能再添加模块)





     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值