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

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

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

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

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

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

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

2>、参照 不忘初“辛”的帖子 http://www.cnblogs.com/flyFreeZn/p/3587770.html,写 生成图集的脚本,并在此基础上增加 加密操作:

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

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

二、在cocos2dx中读取图集:

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

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

  1. 1 // 图集解密 12345678123456781234567812345678
  2. 2 ZipUtils::setPvrEncryptionKey(0x12345678, 0x12345678, 0x12345678, 0x12345678);

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

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

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

内容更新:

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

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

在上面的命令中 更改

  1. $1/*.png

为:

  1. $1

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

更改原来的

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

为:

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

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

打包出来的效果是:

 
 

[转载]TexturePacker 如何使用自带的加密功能及在cocos2dx中的使用的更多相关文章

  1. Java 自带MD5加密 Demo

    package demo; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; pub ...

  2. 介绍几个PHP 自带的加密解密函数

    PHP 自带的加密解密函数 目前经常使用的加密函数有:md5(), sha1(), crypt(), base64_encode(), urlencode() . 其中 md5(), sha1(), ...

  3. Java 自带的加密类MessageDigest类(加密MD5和SHA)

    Java 自带的加密类MessageDigest类(加密MD5和SHA) - X-rapido的专栏 - CSDN博客 https://blog.csdn.net/xiaokui_wingfly/ar ...

  4. YII关联字段并带搜索排序功能

    1.简介 从接触yii框架到现在已经快有两个月了,但是自己对yii框架的了解程度并不是很深,并没有系统地去学习,仅仅只是在做项目的时候遇到不懂得知识才去翻手册. 在上一个项目中因为需要将关联的表的字段 ...

  5. RDS for PostgreSQL 云盘加密功能使用方法

    RDS for PostgreSQL支持数据盘的加密功能,提供更高的数据存储安全等级.(加密KEY可以由用户提供,也可以由KMS服务生成.) 使用方法: 1.选中需要购买数据库实例的region,创建 ...

  6. 利用其它带文件防护功能的软件防止*.asp;*.jpg写入文件。

    此木马是一个.NET程序制作,如果你的服务器支持.NET那就要注意了,,进入木马有个功能叫:IIS Spy,点击以后可以看到所有站点所在的物理路径.以前有很多人提出过,但一直没有人给解决的答案.. 防 ...

  7. (译)利用ASP.NET加密和解密Web.config中连接字符串

    介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, A ...

  8. 如何对具有端点加密功能的LINE进行取证

    LINE又有新动作了,这回默认即启用了端点加密功能,强调确保传输过程的安全,且让我们来看看如何对付新版的LINE. 有启用Letter Sealing就会在昵称前多个锁头的图像. 这手机据犯嫌供称,落 ...

  9. 利用ASP.NET加密和解密Web.config中连接字符串

    摘自:博客园 介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Se ...

随机推荐

  1. 问题:ldconfig

    显示加载库文件libjli.so时候出错. 解决办法 1.find / -name 'libjli.so'文件 路径在:/data0/home/app/act/jdk/jdk1.7.0_15/jre/ ...

  2. 【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 ...

  3. sqlserver 查看锁表,解锁

    查看被锁表: 代码如下 复制代码 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName ...

  4. 从URL中获取搜索关键字

    public string GetSearchKeyWords(string strQuery) { string result = ""; string pattern = &q ...

  5. JS判断用户是否在线的方法

    在以前坐项目的时候,经常碰见通过sessionLisnter来判断用户是否在线的方法,但是由于用户关闭浏览器时不会立刻是否session,因此大部分时候都考虑在页面中通过JS来监控页面是否关闭. 网络 ...

  6. android控件---自定义带文本的ImageButton

    由于SDK提供的ImageButton只能添加图片,不能添加文字:而Button控件添加的文字只能显示在图片内部:当我们需要添加文字在图片外部时就不能满足我们的需求了,顾只能自己写个自定义ImageB ...

  7. 2014_acmicpc_shanghai_google

    I http://acm.hust.edu.cn/vjudge/contest/view.action?cid=84975#problem/I 题意:我方有n个士兵,敌方有m个士兵,每个士兵有攻击力和 ...

  8. UML 2.0(装载)

    在世界上统一建模语言UML2.0是完全不同的维度.它在本质上更加复杂和广泛. 与UML1.5版本相比,文件的程度也增加了. UML2.0中还增加了新的功能,所以它的使用可以更广泛. UML2.0将正式 ...

  9. ios kvo

    kvo的使用方法: 1.注册: -(void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NS ...

  10. Long和Date数据类型之间相互转换代码 - 调整时间推前往后,截取long型日期方法。

    SimpleDateFormat DATETIME_SEC_STR = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateForm ...