Как я могу использовать более одного спрайт-листа?cocos2d / iPhone - PullRequest
2 голосов
/ 27 июля 2010

Я пытаюсь использовать более одного листа спрайтов, потому что я не могу уместить их всех на одном, а наличие двух делает их упорядочение проще (спрайты первого листа спрайтов находятся сзади и имеют меньший zOrder).В настоящее время я делаю:

spriteSheet1 = [[CCSpriteSheet spriteSheetWithFile:@"spriteSheet1.png" capacity:3] retain];
[[CCSpriteFrameCache sharedSpriteFrameCache]     addSpriteFramesWithFile:@"spriteSheet1.plist"];
[self addChild:spriteSheet1];

spriteSheet2 = [[CCSpriteSheet spriteSheetWithFile:@"spriteSheet2.png" capacity:4] retain];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"spriteSheet2.plist"];
[self addChild:spriteSheet2];

CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:@"sprite1.png"];

Последняя строка вылетает с ошибкой: Завершение приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Недопустимый spriteFrame для спрайта» SIGABRT

Am Iне разрешено кэшировать более одного спрайт-листа?Если нет, есть ли другой эффективный способ справиться с этим?

1 Ответ

0 голосов
/ 31 июля 2010

Если вы создаете свои спрайт-листы с помощью Zwoptex, убедитесь, что вы используете версии Zwoptex и cocos2d, которые поддерживают друг друга. В последнее время произошли серьезные изменения в Zwoptex, и если вы используете более старую версию cocos2d, это может объяснить ваш сбой.

В целом, предоставленный вами код должен работать просто отлично, учитывая, что все файлы ресурсов были добавлены в XCode и имеют правильные имена. Помните, что устройства iOS чувствительны к регистру, если вы попытаетесь загрузить «spriteSheet1.plist», но файл на самом деле называется «Spritesheet1.plist», это также приведет к ошибкам (возможно, к утверждению или сбою).

...