Sprite Atlas и @2x изображения

При использовании текстурного атласа (iPhone5) я должен включать спрайт-изображения как в обычных, так и в нормальных размерах @2x (даже если я настроен только на устройства сетчатки). Я думал, что смогу сбежать, добавив только версии @2x, но, к сожалению, когда я запускаю приложение, спрайты выходят намного больше, чем они должны быть (почти 4 раза), я получаю только спрайты правильного размера, когда я добавляю нормальный (@1x) изображения к атласу.

EDIT:

Запуск нового файла проекта в Xcode, если вы хотите, чтобы изображение заполняло весь экран устройства (iPhone5/5S с максимальным разрешением), вам нужно использовать расширение @2x (в этом случае нет "background_003.png" в проекте Xcode, так что просто версия @2x в порядке)

    // SETUP BACKGROUND FRAME IS {320, 568} POINTS
    // IMAGE "[email protected]" = 640 x 1136 Pixels
    SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:@"background_003"];
    [background setAnchorPoint:CGPointZero];
    [background setPosition:CGPointZero];
    [self addChild:background];

enter image description here

Если вы добавляете изображение с правильным размером (640 x 1136) без x 2x xxode, оно принимает изображение и неправильно масштабирует его размер в размере 2.0 точек устройства, в результате получается изображение, которое в два раза больше, чем дисплей.

    // SETUP BACKGROUND FRAME IS {320, 568} POINTS
    // IMAGE "background_001.png" = 640 x 1136 Pixels
    SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:@"background_001"];
    [background setAnchorPoint:CGPointZero];
    [background setPosition:CGPointZero];
    [self addChild:background];

enter image description here

РЕЗУЛЬТАТ:

После небольшого тестирования сегодня утром я понял, что моя проблема связана с добавлением кадров спрайта в атласе без постфикса @2x и последующим переименованием, чтобы включить отсутствующие @2x. Казалось бы, при использовании folder.atlas Xcode создает plist где-то, что ссылается на файлы, я не могу найти это, и он, кажется, только обновляется, когда вы сначала добавляете свой атлас в свой проект. После удаления и повторного добавления атласа Xcode правильно начал отображать изображения @2x в правой шкале.

Мораль этой истории:, если вы изменяете атлас или его содержимое, делаете копию, удаляете ее из своего проекта Xcode и снова добавляете ее. Создайте все свои изображения в разрешении сетчатки и добавьте постфикс @2x во все ваши файлы, вам не понадобятся только файлы сетчатки (без @2x, если ваш таргетинг не имеет устройства сетчатки). Наконец, когда ссылки на арт-ресурсы в коде не используются, @2x postfix, так что, хотя ваше искусство спрайтов с монстрами называется "[email protected]", вы должны ссылаться на него в коде как "Monster_0001". Xcode выработает бит @2x для вас за кулисами, также если вы используете PNG (который вы должны быть), он даже добавит ".png" для вас тоже.

// THE ART ASSET ON DISK IS CALLED: "[email protected]"
SKSpriteNode *spriteMonster = [SKSpriteNode spriteNodeWithImageNamed:@"Monster_0001"];

Ответ 1

Если вы поддерживаете только устройства Retina, просто добавляйте файлы без @2x, и все будет в порядке.