Samael

cocos2d-js热更新优化

最近自己做的项目需要使用热更新来下载每个章节的资源包, 但是cocos2d-js里的AssetsManager并不能满足我的需要, 所以需要进行修改

需求

cocos2d-js里自带的AssetManager, 每次都是把所有的更新资源一起下下来, 但是对于一些分章节的游戏来说, 玩家想玩第几章, 第一次打开的时候去进行下载, 而不是把所有资源一起进行下载.

实现思路

对于cocos2d-js里的AssetManager, 都会去从资源服务器上请求project.manifest的文件去进行资源的版本号比对。 如果要进行多章节的下载. 其实是要对应多个manifest文件

文件结构如下:

files

这样就可以去处理分章节下载的情况了, 但有需要注意:

热更流程如下:

  1. 首次登录游戏, 客户端向服务去对比project.manifest, 并下载公共资源与story1_res_origin.manifest
  2. 当玩家点击章节一的时候, 客户端用story1_res_origin.manifest去对比远程的story1_res.manifest并对比下载最新的资源

参考

cocos2d-js热更新


Share this: