使用Texture Packer,我将我的iPhone5背景图像放在pvr.ccz文件中,并将输出文件保存在我的cocos2d项目的Resources文件夹中。当我尝试加载pvr.ccz文件时,出现以下一系列错误:
cocos2d: Filename(StoreMenuBackground_iPhone5-hd.pvr.ccz) contains -hd suffix.
cocos2d: CCFileUtils: Warning HD file not found: StoreMenuBackground_iPhone5-hd.pvr.ccz
cocos2d: Error loading CCZ compressed file
然后代码在名为ccInflateCCZFile的方法(在cocos2D文件ZipUtils.m中)中与EXC_BAD_ACCESS崩溃。我正在执行的代码行是:
backgroundBgNode = [CCSpriteBatchNode batchNodeWithFile:@"StoreMenuBackground_iPhone5-hd.pvr.ccz"];
现在奇怪的是,如果我在ptr.ccz或我尝试加载的后台png图像上重新创建纹理包中没有-hd扩展名的pvr.ccz文件,然后放置结果输出文件在Resources文件夹中重新运行代码,然后没有检测到错误。如果我然后从Resources文件夹中删除此pvr.ccz和关联的.plist文件(没有-hd扩展名的文件),一切都很好。由于持怀疑态度,我做了一个Clean和一个新的Build,它仍在工作。
为什么我开始收到此错误?当我执行上述步骤时,为什么它会消失。我能相信最终结果是有效的吗?
我正在使用Cocos2d V1.0。我在多个背景图像上试过这个,它们的行为都一样。对于iPad或iPad-hd我也没有这个问题。
答案 0 :(得分:1)
因为cocos2d会在Retina设备上自动搜索-hd后缀文件。您不应该直接使用任何-hd / -ipad#/ - ipadhd / -wide / -widehd后缀来使用文件名。
您可以使用CCFileUtils调整后缀映射,但这在cocos2d-iphone v1.0中非常有限。