В своей игре я изначально создаю спрайты, используя этот код:
- (void)addSpritesForCookies:(NSSet *)cookies {
for (BBQCookie *cookie in cookies) {
NSString *directory = [NSString stringWithFormat:@"sprites/%@.png", [cookie spriteName]];
CCSprite *sprite = [CCSprite spriteWithImageNamed:directory];
sprite.position = [self pointForColumn:cookie.column row:cookie.row];
[self.cookiesLayer addChild:sprite];
cookie.sprite = sprite;
}
}
Это прекрасно работает, и спрайты отображаются правильно. Все текстуры, которые мне нужны, находятся в смарт-листе спрайтов, который я создал в spritebuilder. Вот скриншот структуры в Spritebuilder, так как у меня недостаточно репутации, чтобы размещать изображения здесь: https://www.evernote.com/shard/s30/sh/e1ea553f-a26c-4ecd-866b-551b50f14bd7/cc338cde5ac5ea3e557
Позже мне нужно изменить текстуру некоторых спрайтов. Я использую следующий код:
CCActionCallBlock *changeSprite = [CCActionCallBlock actionWithBlock:^{
NSString *directory = [NSString stringWithFormat:@"sprites/%@.png", [combo.cookieB spriteName]];
CCTexture *texture = [CCTexture textureWithFile:directory];
combo.cookieB.sprite.texture = texture;
}];
Однако я просто регистрирую эти сообщения:
2015-01-17 12:22:09.294 BbqBlitz[65732:4875151] -[CCFileUtils fullPathForFilename:contentScale:] : cocos2d: Warning: File not found: sprites/Cupcake.png
2015-01-17 12:22:09.294 BbqBlitz[65732:4875151] cocos2d: Couldn't find file:sprites/Cupcake.png
Что странно, так это то, что я использую точно такой же путь к файлу для первоначального создания спрайтов, который отлично работает. Но теперь, когда я пытаюсь создать текстуру, она не работает, и спрайты просто превращаются в черные квадраты в моей игре.
Я уже читал этот похожий вопрос: файл изображения SpriteBuilder не найден, но из того, что я могу сказать, что каталог, который я использую, правильный.
Что мне здесь не хватает? Большое спасибо за любую помощь!