TexturePacker 快速游戏开发 图片合成加密工具

TexturePacker是一个非常好用的图片合成工具,在游戏开发中经常用到,因为游戏中使用的图片很多都是一张张很小的,如果这样一张一张地加载到内存,好像会浪费很多内存,如果拼成一张N的2次方大小的图片会很高效地复用图片,通过这个工具就很容易实现这个效果了。

下载地址:

http://www.codeandweb.com/texturepacker

Texturepacker 支持很多平台。

TexturePacker 快速游戏开发 图片合成加密工具 - wwlchuangye - wwlchuangye的博客

TexturePacker 快速游戏开发 图片合成加密工具 - wwlchuangye - wwlchuangye的博客

TexturePacker 快速游戏开发 图片合成加密工具 - wwlchuangye - wwlchuangye的博客TexturePacker 快速游戏开发 图片合成加密工具 - wwlchuangye - wwlchuangye的博客

点击发布后就会生成.plist和.png文件了,这时在Cocos2d-X中使用:

1
2
3
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile( "test.plist" );
CCSprite *pNor = CCSprite::spriteWiteSpriteFrameName( "bt_publicinfo_close_nor.png" );
CCSprite *pPr = CCSprite::spriteWiteSpriteFrameName( "bt_publicinfo_close_pr.png" );
 

TexturePacker最新版本中增加了一个新功能以防止你的产品资源被反编译出来。它被称为ContentProtection,即图片加密。

你的app或者游戏仍可以解密数据,但是其他人则需要耗上很长的时间才能够完成破解。

理论上别人仍可能从源码提取出密钥,并写出一些解码器,这是因为解码器和密钥已经被存储在你的app中-

否则不可能使用你的游戏资源。但是这需要花费知识,时间和精力来解密你的资源。所以他们很有可能找一些

其他更简单的猎物来破解而不是你的资源文件。

 

TexturePacker加密策略设置

假设你已经运行过TexturePacker 创建精灵表,所以只需要打开一个已经存在的.tps文件。

下载最新版的TexturePacker-在左侧你会看到一个新的option属性:Content Protection。按下“Lock”图标,并会弹出一个新的窗口:

TexturePacker 图片加密

在编辑框中你可以输入你想要设置的key-或者按Create new key 按钮创建新的key

使用Clear/Disable来关闭加密功能。

在 TexturePacker 中 按下Save as global key 会存储密钥key为全局变量,在.pvr查看器中用它来解密,

通过按下Use global key按钮你可以复制密钥key到其他精灵表中。

改变文件的格式为pvr.ccz是非常重要的,它是当前唯一支持解密的格式。

TexturePacker中按下Publish完成在TexturePacker中的工作。

在命令行中输入的命令是:–content-protection <key> ,其中 key必须是32位十六进制值。

Cocos2d工程准备 Content protection

下载并拷贝下面2个文件到你的cocos2d文件夹里: libs/cocos2d/Support 

-替换已经存在的2个文件:

  1. ZipUtils.h
  2.  
  3. ZipUtils.m

现在在你的app里设置密钥key。在第一个精灵表导入前你可以在你的程序启动前调用4个方法来完成它。

为了让他们更难被破解请尝试分开调用。

如果你的密钥是aaaaaaaabbbbbbbbccccccccdddddddd,你必须将它们分成4部分每部分8位:

  1. aaaaaaaa
  2.  
  3. bbbbbbbb
  4.  
  5. cccccccc
  6.  
  7. dddddddd

128位加密密钥每个值是32位。在它是作为一个另一个值传递给函数,因此在app中它很难定位。

  1. caw_setkey_part(0,0xaaaaaaaa);
  2.  
  3. caw_setkey_part(1,0xbbbbbbbb);
  4.  
  5. caw_setkey_part(2,0xcccccccc);
  6.  
  7. caw_setkey_part(3,0xdddddddd);

在每一个文件里使用caw_setkey_part,你都得确保添加下面一行

  1. #import "ZipUtils.h"

如果你已经改了文件的格式,那么现在你需要导入的是.pvr.ccz文件代替你之前使用的。

当然你也可以添加新文件到你的工程里。对,就是这样!

猜你喜欢

转载自wwljava.iteye.com/blog/2083148
今日推荐