0

使用 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"];

现在奇怪的是,如果我在 Texture Packer 中重新创建 pvr.ccz 文件,而在我尝试加载的 pvr.ccz 或背景 png 图像上没有 -hd 扩展名,然后将生成的输出文件放在资源中文件夹并重新运行代码,然后没有检测到错误。如果我随后从 Resources 文件夹中删除此 pvr.ccz 和关联的 .plist 文件(没有 -hd 扩展名的文件),一切都很好。持怀疑态度,然后我做了一个清洁和一个新的构建,它仍然有效。

为什么我一开始就会出现这个错误?当我执行上述步骤时,为什么它会消失。我可以相信最终结果是有效的吗?

我正在使用 Cocos2d V1.0。我已经在多个背景图像上尝试过这个,它们的行为都一样。对于 iPad 或 iPad-hd,我也没有这个问题。

4

1 回答 1

1

因为 cocos2d 会在 Retina 设备上自动搜索 -hd 后缀的文件。您不应该直接使用使用任何 -hd/-ipad#/-ipadhd/-wide/-widehd 后缀的文件名。

您可以使用 CCFileUtils 调整后缀映射,尽管这在 cocos2d-iphone v1.0 中非常有限。

于 2013-10-17T22:22:10.220 回答