【Cocos Creator】图片资源压缩解决方案

在游戏开发过程中,通常需要解决以下问题:

  1. 原生平台减小包体、减小热更新时的资源大小;
  2. Web 平台加载远程资源,需要压缩资源的大小;

图片作为最主要的资源之一,我们需要一个压缩图片的解决方案。

为了总结这个解决方案,我们的基本思路是研究主流的几个压缩软件,对比它们压缩不同图片资源的效果。

1. 常见的压缩方案

2. 方案选择

我们首先准备好一个小游戏项目的资源:
要压缩的资源

其大小是 1.4MB

super-tinypng 压缩

参考 原来 TinyPNG 可以这样玩!

# 局部安装 super-tinypng
npm install super-tinypng

# 切换到资源目录
cd AutoAtlas

# 压缩资源
../node_modules/.bin/super-tinypng

压缩完毕,大小为 589KB
在这里插入图片描述

pngquant 方案

切换到 AutoAtlas 文件夹下执行压缩方案

find . -type f | grep .png | xargs ../3rd/mac/pngquant/pngquant --force --ext .png

压缩后,资源大小为
在这里插入图片描述
从两个方案的压缩效率来看, tinypng 优于 pngquant。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cocos Creator 2.7 版本中,可以通过 `cc.loader` 模块来加载资源,并使用 `cc.ProgressBar` 组件来创建一个资源加载进度条。具体的实现步骤如下: 1. 创建一个进度条节点 在场景编辑器中创建一个节点,并添加 `cc.ProgressBar` 组件。设置进度条的样式、位置、大小等属性。 2. 加载资源时更新进度条 使用 `cc.loader` 模块加载资源时,可以使用 `onProgress` 方法监听进度,根据已经加载的资源数和总资源数来计算加载进度,并将进度条的百分比设置为相应的值。 ``` // 加载资源的过程中 cc.loader.loadResDir("resources", (completedCount, totalCount, item) => { let percent = completedCount / totalCount; progressBar.progress = percent; // 设置进度条的百分比 }, (err, assets) => { // 加载完成后的回调 }); ``` 其中,`loadResDir` 方法用于加载资源目录中的所有资源,`completedCount` 表示已经加载的资源数,`totalCount` 表示总资源数,`item` 表示当前加载的资源信息。`percent` 表示已经加载的资源数占总资源数的百分比,`progress` 是 `cc.ProgressBar` 组件的进度属性,将其设置为相应的值即可更新进度条。 3. 加载完成时隐藏进度条 当资源加载完成时,可以将进度条节点隐藏起来。 ``` // 资源加载完成后 progressNode.active = false; // 隐藏进度条节点 ``` 这样,你就可以在 Cocos Creator 2.7 中使用 `cc.loader` 模块和 `cc.ProgressBar` 组件来创建一个资源加载进度条了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值