博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TexturePacker 如何使用自带的加密功能及在cocos2dx中的使用
阅读量:6209 次
发布时间:2019-06-21

本文共 2823 字,大约阅读时间需要 9 分钟。

在cocos2dx中使用纹理图集是非常节省资源的,在这里推荐 TexturePacker,而且 TexturePacker工具的加密接口也非常的好用,下面就来介绍一下。。。

TexturePacker 工具的加密,只是相对于一般使用的基础上增加了几步对密码操作的步骤(目前的加密功能仅适用于.pvr.ccz格式):

一、生成密码(图形化界面和命令行两种方式)

方式一:图形化界面生成密码

密码可以自己手动过输入,或者使用下面的这几个按钮,完后点击外面的空白区域就自动保存了。。。

(2)shell脚本命令行生成密码

1>、首先安装 commandline Tool, 菜单栏 -> Install commanndLine Tool

2>、参照 不忘初“辛”的帖子 ,写 生成图集的脚本,并在此基础上增加 加密操作:

1 # next line is encrypt command option        2 # --content-protection "11111112122222223333333344444444" \
1 #! /bin/bash 2  3 CURRENT_DIR=`dirname $0` 4  5 # input paths 6 IMAGE_DIR=$CURRENT_DIR/imgs/ 7  8 # path that game proj use 9 GAME_IMAGE_PATH=$CURRENT_DIR/10 11 # path of the texture packer command line tool12 TP=/usr/local/bin/TexturePacker13 14 # $1: Source Directory where the assets are located15 # $2: Output File Name without extension16 # $3: RGB Quality factor17 # $4: Scale factor18 # $5: Max-Size factor19 # $6: Texture Type (PNG, PVR.CCZ)20 # $7: Texture format21 # $8: encrypt key, Key: 128 bit, 32 hex digits [A-F0-9]22 pack_textures() {23 24     ${TP} --smart-update \25         --texture-format $7 \26         --format cocos2d \27         --data "$2".plist \28         --sheet "$2".$6 \29         --maxrects-heuristics best \30         --enable-rotation \31         --scale $4 \32         --shape-padding 1 \33         --max-size $5 \34         --opt "$3" \35         --trim \36         --premultiply-alpha \37         38         --content-protection $8 \39         $1/*.png40 41 }42 43 # do the job44 for i in $IMAGE_DIR/*45 do46     if [ -d $i ] 47     then48         spriteSheetName=`basename $i`49         pack_textures $i $GAME_IMAGE_PATH/$spriteSheetName 'RGBA8888' 1 2048 'pvr.ccz' "pvr2ccz" "12345678123456781234567812345678"50     fi51 done52 53 # next line is encrypt command option        54 # --content-protection "12345678123456781234567812345678" \

至此,加密操作便是完了,密码是 12345678123456781234567812345678。

二、在cocos2dx中读取图集:

1、由于在cocos2dx引擎中集成了图集解密所需要的 ZipUtils类,所以不用引入直接使用就好。。。

2、在游戏还没有使用图集之前进行解密

1 // 图集解密   123456781234567812345678123456782     ZipUtils::setPvrEncryptionKey(0x12345678, 0x12345678, 0x12345678, 0x12345678);

 

3、然后,然后就正常使用就好啦,我贴出我在Lua中的使用:

1 local spriteFrameCache = cc.SpriteFrameCache:getInstance()2     spriteFrameCache:addSpriteFramesWithFile("tmp/texture_tmp.plist", "tmp/texture_tmp.pvr.ccz")

 

 

以上使用的cocos2dx的版本为 v3.2,TexturePacker版本为。。。额,装完命令行工具就找不到版本号了。。。

 

 

内容更新:

在上面的博客中介绍到了使用命令行来加密图集,在使用的过程中我又发现了使用命令行新的有用的命令。。。

上面的命令行可以实现对一个所有处在同一目录下的资源进行打包,但是不能进行递归打包,那么就有了接下来的命令选项。。。

在上面的命令中 更改

$1/*.png

为:

$1

即将索引到图片改为索引到上级目录文件夹,这样的话就可以实现递归文件目录打包,但是有个问题,当要打包的所有图片过多或者过大而使一个图集装不下的情况时,需要进行动态递增打包,使用下面的命令

更改原来的

1 --data "$2".plist\2 --sheet "$2".$6 \

为:

1 --data "$2"_{n}.plist\2 --sheet "$2"_{n}.$6 \3 --multipack \

上面脚本中的 _{n}是占位符,用来增加文件名用的, --multipack 是动态打包的选项。

打包出来的效果是:

转载于:https://www.cnblogs.com/cg-Yun/p/4081255.html

你可能感兴趣的文章
javascript之数组操作
查看>>
centos7下安装mysql
查看>>
row_number 自己的一点小东西
查看>>
第十周总结
查看>>
如何用ABP框架快速完成项目(5) - 用ABP一个人快速完成项目(1) - 使用代码生成器...
查看>>
PDO连续query()失败问题
查看>>
Running a 64-bit VMware image on a 32-bit machine
查看>>
SQLite数据库学习小结——native层实现
查看>>
Spring Cloud ---- 服务消费与负载均衡(Rest + Ribbon )
查看>>
关于电梯调度的阶段性成果
查看>>
室内定位系列(五)——目标跟踪(卡尔曼滤波)
查看>>
test
查看>>
Linux中的用户切换:su和su -的区别(转)
查看>>
压缩 & 解压缩 命令汇总:tar、zip & unzip、
查看>>
用一句SQL取出第 m 条到第 n 条记录的方法
查看>>
go语言:go写的日记簿(开源)
查看>>
Binary Tree Level Order Traversal
查看>>
理解作用域(引擎,编译器,作用域)
查看>>
无阻塞加载脚本
查看>>
走进缓存的世界(一) - 开篇
查看>>