2013-12-02 1 views
10

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

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) без @ 2x Xcode, которое берет изображение и неправильно его масштабирует с помощью размера 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, и все будет в порядке.

+1

Привет, Steffen, это правильно, если это не так, если ваша просто поддерживающая сетчатка тогда вам нужны только версии @ 2x. – fuzzygoat

+0

@ 2x загружается, когда изображение без суффикса должно быть загружено, но приложение запускается на устройстве Retina и отображается соответствующее изображение «@ 2x». Если вы опустите «@ 2x», изображение будет использоваться на всех устройствах. Поэтому, если вы поддерживаете только устройства Retina, суффикс «@ 2x» не требуется. Или вы можете использовать суффикс «@ 2x», но тогда вам придется явно указать imageNamed: «[email protected]», который не соответствует цели. – LearnCocos2D