[转载]TexturePacker 如何使用自带的加密功能及在cocos2dx中的使用
在cocos2dx中使用纹理图集是非常节省资源的,在这里推荐 TexturePacker,而且 TexturePacker工具的加密接口也非常的好用,下面就来介绍一下。。。
TexturePacker 工具的加密,只是相对于一般使用的基础上增加了几步对密码操作的步骤(目前的加密功能仅适用于.pvr.ccz格式):
一、生成密码(图形化界面和命令行两种方式)
方式一:图形化界面生成密码
密码可以自己手动过输入,或者使用下面的这几个按钮,完后点击外面的空白区域就自动保存了。。。
(2)shell脚本命令行生成密码
1>、首先安装 commandline Tool, 菜单栏 -> Install commanndLine Tool
2>、参照 不忘初“辛”的帖子 http://www.cnblogs.com/flyFreeZn/p/3587770.html,写 生成图集的脚本,并在此基础上增加 加密操作:
- 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 tool
- 12 TP=/usr/local/bin/TexturePacker
- 13
- 14 # $1: Source Directory where the assets are located
- 15 # $2: Output File Name without extension
- 16 # $3: RGB Quality factor
- 17 # $4: Scale factor
- 18 # $5: Max-Size factor
- 19 # $6: Texture Type (PNG, PVR.CCZ)
- 20 # $7: Texture format
- 21 # $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/*.png
- 40
- 41 }
- 42
- 43 # do the job
- 44 for i in $IMAGE_DIR/*
- 45 do
- 46 if [ -d $i ]
- 47 then
- 48 spriteSheetName=`basename $i`
- 49 pack_textures $i $GAME_IMAGE_PATH/$spriteSheetName 'RGBA8888' 1 2048 'pvr.ccz' "pvr2ccz" "12345678123456781234567812345678"
- 50 fi
- 51 done
- 52
- 53 # next line is encrypt command option
- 54 # --content-protection "12345678123456781234567812345678" \

至此,加密操作便是完了,密码是 12345678123456781234567812345678。
二、在cocos2dx中读取图集:
1、由于在cocos2dx引擎中集成了图集解密所需要的 ZipUtils类,所以不用引入直接使用就好。。。
2、在游戏还没有使用图集之前进行解密
- 1 // 图集解密 12345678123456781234567812345678
- 2 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 是动态打包的选项。
打包出来的效果是:
[转载]TexturePacker 如何使用自带的加密功能及在cocos2dx中的使用的更多相关文章
- Java 自带MD5加密 Demo
package demo; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; pub ...
- 介绍几个PHP 自带的加密解密函数
PHP 自带的加密解密函数 目前经常使用的加密函数有:md5(), sha1(), crypt(), base64_encode(), urlencode() . 其中 md5(), sha1(), ...
- Java 自带的加密类MessageDigest类(加密MD5和SHA)
Java 自带的加密类MessageDigest类(加密MD5和SHA) - X-rapido的专栏 - CSDN博客 https://blog.csdn.net/xiaokui_wingfly/ar ...
- YII关联字段并带搜索排序功能
1.简介 从接触yii框架到现在已经快有两个月了,但是自己对yii框架的了解程度并不是很深,并没有系统地去学习,仅仅只是在做项目的时候遇到不懂得知识才去翻手册. 在上一个项目中因为需要将关联的表的字段 ...
- RDS for PostgreSQL 云盘加密功能使用方法
RDS for PostgreSQL支持数据盘的加密功能,提供更高的数据存储安全等级.(加密KEY可以由用户提供,也可以由KMS服务生成.) 使用方法: 1.选中需要购买数据库实例的region,创建 ...
- 利用其它带文件防护功能的软件防止*.asp;*.jpg写入文件。
此木马是一个.NET程序制作,如果你的服务器支持.NET那就要注意了,,进入木马有个功能叫:IIS Spy,点击以后可以看到所有站点所在的物理路径.以前有很多人提出过,但一直没有人给解决的答案.. 防 ...
- (译)利用ASP.NET加密和解密Web.config中连接字符串
介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, A ...
- 如何对具有端点加密功能的LINE进行取证
LINE又有新动作了,这回默认即启用了端点加密功能,强调确保传输过程的安全,且让我们来看看如何对付新版的LINE. 有启用Letter Sealing就会在昵称前多个锁头的图像. 这手机据犯嫌供称,落 ...
- 利用ASP.NET加密和解密Web.config中连接字符串
摘自:博客园 介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Se ...
随机推荐
- 问题:ldconfig
显示加载库文件libjli.so时候出错. 解决办法 1.find / -name 'libjli.so'文件 路径在:/data0/home/app/act/jdk/jdk1.7.0_15/jre/ ...
- 【Merge Two Sorted Lists】cpp
题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splici ...
- sqlserver 查看锁表,解锁
查看被锁表: 代码如下 复制代码 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName ...
- 从URL中获取搜索关键字
public string GetSearchKeyWords(string strQuery) { string result = ""; string pattern = &q ...
- JS判断用户是否在线的方法
在以前坐项目的时候,经常碰见通过sessionLisnter来判断用户是否在线的方法,但是由于用户关闭浏览器时不会立刻是否session,因此大部分时候都考虑在页面中通过JS来监控页面是否关闭. 网络 ...
- android控件---自定义带文本的ImageButton
由于SDK提供的ImageButton只能添加图片,不能添加文字:而Button控件添加的文字只能显示在图片内部:当我们需要添加文字在图片外部时就不能满足我们的需求了,顾只能自己写个自定义ImageB ...
- 2014_acmicpc_shanghai_google
I http://acm.hust.edu.cn/vjudge/contest/view.action?cid=84975#problem/I 题意:我方有n个士兵,敌方有m个士兵,每个士兵有攻击力和 ...
- UML 2.0(装载)
在世界上统一建模语言UML2.0是完全不同的维度.它在本质上更加复杂和广泛. 与UML1.5版本相比,文件的程度也增加了. UML2.0中还增加了新的功能,所以它的使用可以更广泛. UML2.0将正式 ...
- ios kvo
kvo的使用方法: 1.注册: -(void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NS ...
- Long和Date数据类型之间相互转换代码 - 调整时间推前往后,截取long型日期方法。
SimpleDateFormat DATETIME_SEC_STR = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateForm ...