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 ответ
Создайте каждый атлас один раз и сохраняйте ссылку на него.
Это не плохо, если вы напишите класс, который управляет атласом и дает вам доступ к отдельным текстурам.