Cocos2d-x使用AssetsManager更新资源和脚本
来源:互联网 发布:coc数据 编辑:程序博客网 时间:2024/05/23 16:56
【说明】
热更新实际就是从服务器下载资源包,保存到本地后解压使用的过程,而Cocos2d已经帮我们封装好了,那就是AssetsManager类,我们只需要关心怎么使用就行了。
【使用】
1. 准备好资源包
我这里直接用的GitHub作为服务器做测试,GitHub的基本使用请参考上一篇文章。
> 创建代码库后,上传一个资源文件(cocos2d-update-temp-package.zip)和一个版本文件(version)。
> 分别得到对应的 raw地址。(我是直接开文件,然后点击Raw按钮,然后在地址栏复制的)
2. 项目中使用
> AssetsManager类在extensions中,所以需要引用头文件:
#include "extensions/cocos-ext.h"
USING_NS_CC_EXT;
> 创建AssetsManager并且检查更新,代码如下:
std::string packageUrl = "http://raw.githubusercontent.com/ldpjay/Cocos2dx/master/20150803/cocos2dx-update-temp-package.zip";
std::string versionFileUrl = "http://raw.githubusercontent.com/ldpjay/Cocos2dx/master/20150803/version";
std::string storagePath = FileUtils::getInstance()->getWritablePath();
auto pAssets = AssetsManager::create(packageUrl.c_str(), versionFileUrl.c_str(), storagePath.c_str(), CC_CALLBACK_1(Scene02::onError, this), CC_CALLBACK_1(Scene02::onProgress, this), CC_CALLBACK_0(Scene02::onSuccess, this));
pAssets->retain(); // 如果不加这句会报错(cocos2d-x-v3.7)
// pAssets->deleteVersion(); // 清除当前版本的版本号
if (pAssets->checkUpdate())
{
pAssets->update();
}
> AssetsManager后三个参数分别是错误、进度和完成的回调函数。
void Scene02::onError(int code)
{
log("update faild. error code %d", code);
}
void Scene02::onProgress(int percent)
{
log("update progress : %d", percent);
}
void Scene02::onSuccess()
{
log("update success.");
}
> 可以再onProgress中实现进度条,在OnSuccess调用后就可以使用更新的资源了。AssetsManager内部已经将存储路径加入“SearchPath”了,所有可以直接用文件的相对路径进行访问。
> 更多使用请查看AssetsManager接口。
3. 效果预览
- 【更新】Cocos2d-x使用AssetsManager更新资源和脚本
- Cocos2d-x使用AssetsManager更新资源和脚本
- Cocos2d-x 3.2 自动更新 -- 使用AssetsManager更新游戏资源包
- Cocos2d-x 3.2 自动更新 -- 使用AssetsManager更新游戏资源包
- cocos2d-x使用AssetsManager类实现资源的在线更新
- Cocos2d-x 3.2 自动更新 -- 使用AssetsManager更新游戏资源包
- Cocos2d-x 3.2 自动更新 -- 使用AssetsManager更新游戏资源包
- cocos2d-x使用AssetsManager类实现资源的在线更新
- cocos2d-x 2.2 资源更新AssetsManager例子代码
- cocos2d-js 热更新模块 使用AssetsManager
- cocos2d-x AssetsManager libcurl使用心得
- [COCOS2D-X]AssetsManager
- [COCOS2D-X]AssetsManager
- COCOS2D-X]AssetsManager
- 使用lua更新脚本后,xcode下游戏资源没有更新的问题[quick-cocos2d-x]
- 使用lua更新脚本后,xcode下游戏资源没有更新的问题[quick-cocos2d-x]
- quick-cocos2d-x 脚本和资源加密
- quick-cocos2d-x 脚本和资源加密
- 一篇文章带你了解Flannel
- 阿里云ECS初试-安装
- 使用cookie技术实现,缓存最近浏览过详细信息的三本书的书名列表,并进行相应显示
- Xamarin.Android平台功能——位置服务
- fatal error: Python.h: No such file or directory解决办法
- Cocos2d-x使用AssetsManager更新资源和脚本
- Java并发编程之Lock
- 浏览器版本:前后端判断
- ubuntu16.04 python2.7
- Xcode常用插件
- 查看Oracle中的所有用户权限
- 《爱上Android》作者说!
- 1016. 部分A+B (15)
- Leetcode 410. Split Array Largest Sum