Как встроить анимацию CCSpriteFrameCache в несколько спрайтов в cocos2d - PullRequest
1 голос
/ 07 июня 2011

все

Я хочу встроить несколько кешей spriteFrame, используя следующий код.

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"abc.plist"];        

// Create a sprite sheet with the Happy Bear images
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"abc.png"];
[self addChild:spriteSheet];

проблема в том, что после того, как 1-я анимация закрыта, я хочу сделать еще одну анимацию через другой ccsprite кэш фрейма и добавить еще один лист спрайтов, но когда я добавлю еще один лист спрайтов, он даст мне sigerbat ошибка.

как я могу сделать несколько анимаций после одной анимационной обложки, после чего начнется вторая анимация, помните, что есть файл 4 CCSpriteFrameCache (т. Е. Файл 4 plist)

1 Ответ

4 голосов
/ 07 июня 2011

Все CCSprite, добавленные в CCSpriteBatchNode, должны использовать одну и ту же текстуру.То, чего вы пытаетесь достичь, невозможно, потому что вы пытаетесь добавить изображения из 4 различных текстур.Если вы проверите Консоль (в сборках отладки), то увидите сообщение с указанием чего-либо на этот счет.

Решение: используйте один CCSpriteBatchNode для каждой текстуры (загружается через plist CCSpriteFrameCache).Вам придется написать больше кода, но это единственный способ сделать это, за исключением того, что вы вообще не используете CCSpriteBatchNode.

Возможно, вы захотите выполнить тест производительности, чтобы проверить, действительно ли вам действительно нужен CCSpriteBatchNode.Например, если вы одновременно выводите на экран ОДИН спрайт из одной и той же текстуры, вам не нужен CCSpriteBatchNode.Это только повышает производительность, если у вас есть несколько (и много) спрайтов на экране и все используют одну и ту же текстуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...