加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【Cocos2d-x】实现资源热更新

发布时间:2020-12-14 19:58:02 所属栏目:百科 来源:网络整理
导读:热更新介绍 什么是热更新? 游戏客户端启动时,主动请求服务端检查版本号,并更新资源到本地。 应用场景: 情况一:游戏客户端已经发布了,但突然发现有个比较严重的bug需要修复。这时需要更新游戏的代码(Lua代码)。 情况二:情人节到了,需要搞个活动,在


热更新介绍


什么是热更新?

游戏客户端启动时,主动请求服务端检查版本号,并更新资源到本地。


应用场景:

情况一:游戏客户端已经发布了,但突然发现有个比较严重的bug需要修复。这时需要更新游戏的代码(Lua代码)。

情况二:情人节到了,需要搞个活动,在游戏中营造一个节日氛围。这时,需要更新游戏资源或增加一些功能。


好处:不需要重新打包和提交应用到市场等待审核。



热更新流程





AssetsManager


在Cocos2d-x中已经封装了用于实现热更新功能的类,就是AssetsManager。


api说明:

// 检测是否有版本更新
virtual bool checkUpdate();

// 下载更新的资源包并解压到下载路径
virtual void update();

// 获取当前客户端版本号
std::string getVersion();

// 删除客户端版本号
void deleteVersion();

// 设置下载回调(AssetsManagerDelegateProtocol)
void setDelegate(AssetsManagerDelegateProtocol *delegate);

// 设置连接超时时间(单位:秒)
void setConnectionTimeout(unsigned int timeout);

// 设置从服务端下载资源包的url
void setPackageUrl(const char* packageUrl);

// 设置服务端获取版本号的url
void setVersionFileUrl(const char* versionFileUrl);

// 设置资源保存路径
void setStoragePath(const char* storagePath);


因为AssetsManager使用了pthread库,所以需要在win32工程中需要包含pthread库所在目录。

VS在工程属性——C/C++——常规——附加包含目录中添加:$(ProjectDir)......cocos2dxplatformthird_partywin32pthread



示例工程


该工程使用Cocos2d-x2.1.6和VS2012。【点击下载源码】


把工程放到引擎projects目录下即可。



项目地址:https://coding.net/u/linchaolong/p/Cocos2d-x_HotUpdate/git

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读