Cocos2d-X2.2.6版本添加图片后缀名

Cocos2d-X2.2.6版本添加图片后缀名

三月 31, 2018

    本以为Cocos是把所有文件转换成二进制数据加载进内存的,所以代码中应该不去管后缀名了,然后我把图片更换png扩展名为metek,加密脚本中添加了新扩展名。CCFileUtils中也添加了新扩展名,用于解密流程中。一切准备就绪,发现安卓设备还是不能识别新扩展名。跟了一下代码,发现CCTextureeCache中computeImageFormatType和addImage方法中,通过eImageFormat变量的赋值为图片类型扩展名的枚举值。然后我在png的if条件中加入了新的扩展名后,发现还是无法解析出图片。于是,我打印了图片文件的头,发现标识头不是PNG格式,这时我开始怀疑是解密流程有问题。但是,因为单独加密的文件替换到iOS包中,是可以解析出图片的。这点可以证明加密流程是没有问题的。应该是android和ios走的读取文件并解密的接口不对。最终发现android走的是CCFileUitlsAndroid文件中的接口,后来在该文件中发现了这个数组。

static const char decodeSuffix[][50] = { ".lua", ".png" };

    于是,在数组中添加新扩展名后,解密流程就可以识别并解析metek文件了。