前言

因为换了设备,导致旧版授权无法在新设备上使用,而且买了软件也只支持固定当前版本,不能升级,苦于mac版没有“正常”能使用的版本,于是试试对plist做处理。

顺便说一下当时买texturepacker的初衷,是因为它支持swf直接输出贴图,为了这个功能掏了钱,但发现几点:

  • 软件并非永久免费
  • 软件只支持2台设备
  • 软件不给大版本升级功能,想要升级需要再花钱
  • swf直出功能并没有用到 (对于我来说)
  • 非永久主要也不便宜,如果便宜的话还是会支持的

texture packer的免费版用旧后,输出会出现贴图错误,提示付费。
既然有原始图片和输出图, 那么重新按照plist的设置再处理一份不就好了。就这么简单

这里用到了python比较简单的模块,只是处理json/正则,以及坐标转换,加上PIL贴图。

不到100行代码,我这里对应5.4版本进行处理

处理要求:

  • 只能是文件夹图集
  • 不保证其他版本输出格式可用
  • 不保证cocos2d框架以外的模块可用

实现:

  • 通过tps文件分析源目录和生成目录
  • 通过生成的plist文件重新绘制png文件
  • 多线程处理
  • 只需要给定目录位置
  • 测试了一些文件,进行文件比对,没有位移问题,但边缘像素有所区别,它用到了一些“压缩”算法,我这里直接存png,没有出现文件过大问题,大小基本相似

推论:

  • tps本身支持命令行处理,也许可以在批处理的同时对其进行fix
  • tps文件可以加密,但需要软件升级,而软件本身并没有‘特别’的功能,现有版本都已完全满足
  • tps即便加密,也不会太影响整体处理流程,一样可以做到上述功能的实现

有兴趣的可以研究下:
https://github.com/zszen/tpfr...


Zszen
11 声望2 粉丝

print('搬家至此, 简书不错'.replace('不错', '滚粗'))