iOS7, как правильно создавать и использовать SKTextureAtlas?

Я не уверен в базовой реализации атласов текстур, поэтому мой вопрос: как правильно поступить с извлечением текстур из них? Мне нужно перебрать различные атласы и вытащить их. 64 случайных текстуры.

Создать статический атлас и повторно использовать ссылку для извлечения текстур?

static SKTextureAtlas *monsterAtlas;
static int monsterCount;

monsterAtlas = [SKTextureAtlas atlasNamed:@"monsters"];
monsterCount = [monsterAtlas textureNames].count;

//pull out a random texture
NSString* textureName = [[monsterAtlas textureNames] objectAtIndex: arc4random()%monsterCount];
SKTexture* texture = [monsterAtlas textureNamed:textureName];

-OR-

создавать новый атлас каждый раз, когда мне нужна текстура?

SKTextureAtlas *atlas = [SKTextureAtlas atlasNamed:@"monster"];
SKTexture *f1 = [atlas textureNamed:@"monster-walk1.png"];

Причина, по которой я спрашиваю, заключается в том, что при первом подходе мой код может быть довольно громоздким, так как у меня будет создано более 10 ссылок на атлас. Будет ли это использовать слишком много памяти? Со вторым подходом я обеспокоен тем, что мне придется выполнять много дополнительной работы по созданию атласа каждый раз, когда я выполняю итерацию цикла. Как мне это сделать?


person Alex Stone    schedule 01.12.2013    source источник


Ответы (1)


Создайте каждый атлас один раз и сохраните ссылку на него.

Нетрудно написать класс, управляющий атласами и дающий доступ к отдельным текстурам.

person LearnCocos2D    schedule 01.12.2013