Cocos2D должен ли я использовать одно изображение на спрайт

Если у меня на экране сразу несколько одинаковых спрайтов, нужно ли загружать по одному изображению для каждого из спрайтов, или можно просто как-то переиспользовать изображения?

i.e,

Нужно ли мне это делать?

CCSprite *mySprite1 = [CCSprite spriteWithFile:@"mySprite.png"];
CCSprite *mySprite2 = [CCSprite spriteWithFile:@"mySprite.png"];

Или есть лучший способ справиться с идентичными спрайтами?


person Robert    schedule 25.12.2010    source источник


Ответы (2)


Ваше решение в порядке. Первый вызов spriteWithFile: загрузит текстуру и добавит ее в общий CCTextureCache. Второй проверит, существует ли уже текстура, и на этот раз повторно использует ее из первого.

person pyrosphere    schedule 26.12.2010

Вы должны использовать

- (id)initWithCGImage:(CGImageRef)image
                  key:(NSString *)key   

Справочник

Этот метод использует либо изображение, либо кешированную текстуру, названную по ключу. Если кешированная текстура с этим ключом недоступна, он создаст текстуру и кеширует ее для вас.

person jsadfeew    schedule 25.12.2010