在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中的使用的更多相关文章

  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. CSS3图片旋转特效

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...

  2. python-面向对象(指数对象举例)

    class Index(object): def __init__(self,index_name,index_code,closePrice_yesterday,closePrice_today): ...

  3. 《我是IT小小鸟》读书笔记

    转眼间,大学的第二学期悄悄来临了,老师给我们布置了一道原本我以为很无趣的题目----写<我是IT的读书笔记>,但是我读了<我是IT小小鸟>这本书后,令我受益匪浅:五个人,每个人 ...

  4. 《我是一只it小小鸟》

    <我是一只it小小鸟>一书虽然内容不多,但里面的故事极其励志,耐人寻味.虽然只花不多的时间阅读这本书,它给我的影响将会伴随一生. 他们是来自不同的院校,或本科,或半路转行:工作在不同的场所 ...

  5. OrzFAng系列–树 解题报告

    题目描述 方方方种下了三棵树,两年后,第二棵树长出了n个节点,其中1号节点是根节点. 给定一个n个点的树 支持两种操作 方方方进行m次操作,每个操作为: (1)给出两个数i,x,将第i个节点的子树中, ...

  6. Leetcode#140 Word Break II

    原题地址 动态规划题 令s[i..j]表示下标从i到j的子串,它的所有分割情况用words[i]表示 假设s[0..i]的所有分割情况words[i]已知.则s[0..i+1]的分割情况words[i ...

  7. Leetcode#61 Rotate List

    原题地址 我一直不太理解为什么叫rotate,翻译成"旋转"吧,似乎也不像啊.比如: 1->2->3->4->5->NULL 向右旋转2的距离,变成了 ...

  8. [noip2005提高]过河 dp

    由于L的范围到了109,用普通dp做肯定是不成了: 可以观察到M的数量很小,dp在转移的过程中有大量的无用转移: 可以想到压缩范围,问题是如何压缩,观察若S=9,T=10时,能到达的点,9,10,18 ...

  9. shadowmap 及优化

    对于子阴影的走样, 条纹 开zbias resterizeState zbias = 1000...大概这样 另一个方法是画背面 backface是指一个人肚子那面,后背那面 而不是肚子的里面那层 所 ...

  10. GameMap地图初始化

    init_map(res_path) .初始化mapbase的基本信息 pos2d screen_area = {, }; //普通屏幕大小 m_spBase->init(screen_area ...