Ошибка загрузки сжатого файла CCZ для изображений iPhone5
Используя Texture Packer, я помещаю свои фоновые изображения iPhone5 в файл pvr.ccz и сохраняю выходные файлы в папке Resources моего проекта cocos2d. Когда я пытаюсь загрузить файл 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
а затем происходит сбой кода с EXC_BAD_ACCESS в методе с именем ccInflateCCZFile (в файле cocos2D ZipUtils.m). Моя строка кода, которую я выполняю:
backgroundBgNode = [CCSpriteBatchNode batchNodeWithFile:@"StoreMenuBackground_iPhone5-hd.pvr.ccz"];
Теперь странно то, что если я заново создаю файл pvr.ccz в Texture Packer без расширения -hd на pvr.ccz или фоновом png-изображении, которое я пытаюсь загрузить, а затем помещаю результирующие выходные файлы в ресурсы папку и перезапустите код, тогда ошибка не обнаружена. Если я затем удаляю этот pvr.ccz и связанный с ним файл.plist (файл без расширения -hd) из папки Resources, все в порядке. Будучи скептиком, я тогда сделал Чистку и новую сборку, и она все еще работает.
Почему я получаю эту ошибку для начала? И почему это уходит, когда я делаю шаги, описанные выше. Могу ли я верить, что конечный результат действителен?
Я использую Cocos2d V1.0. Я пробовал это на нескольких фоновых изображениях, и все они ведут себя одинаково. У меня тоже нет этой проблемы для iPad или iPad-hd.
1 ответ
Потому что cocos2d ищет файлы с суффиксом -hd автоматически на устройствах Retina. Вы не должны использовать имена файлов, напрямую используя суффиксы -hd/-ipad#/-ipadhd/-wide/-widehd.
Вы можете настроить сопоставление суффиксов с помощью CCFileUtils, хотя это очень ограничено в cocos2d-iphone v1.0.