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];

-ИЛИ ЖЕ-

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

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

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

1 ответ

Решение

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

Это не плохо, если вы напишите класс, который управляет атласом и дает вам доступ к отдельным текстурам.

Другие вопросы по тегам