Почему мое искусство отображается на экране в 2 раза больше?

Я создаю универсальное приложение.

Я создал свое искусство в иллюстраторе, чтобы оно соответствовало размеру экрана iPhone, в частности, с разрешением 640x1136 пикселей. Я экспортировал PNG и назвал [email protected], а также 50-процентную версию с именем myArt.png. Арт находится в папке с атласом.

Я создаю спрайт-узлы следующим образом:

NSString * backgroundName=@"starField";
SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:backgroundName];
background.position = CGPointMake(screenWidth/2, screenHeight/2);
background.zPosition = LayerBackground;
[_worldNode addChild:background];

Проблема в том, что когда я запускаю это в симуляторе (iPhone 4 с сетчаткой), изображения увеличиваются. Мне нужно использовать xScale и yScale, чтобы вернуть его к реальному размеру.

Почему? Что я делаю не так?

Спасибо, богатый!


person user2887097    schedule 16.05.2014    source источник
comment
Каково значение scaleMode сцены?   -  person LearnCocos2D    schedule 16.05.2014
comment
Перепробовал все режимы, ни один не помогает...   -  person user2887097    schedule 19.05.2014


Ответы (2)


Я думаю, вам нужно установить свойство размера SKNode. Например:

background.size = CGSizeMake(screenWidth, screenHeight);
person henryeverett    schedule 23.05.2014

Хорошо, я думаю, что решил это -

Я не начинаю создавать свой контент, пока не будет вызван метод viewWillLayoutSubviews. Шаблон SpritKit по умолчанию использует viewDidLoad, но я изменил его на viewWillLayoutSubviews, и теперь все выглядит нормально.

Я думаю, что пытался создать что-то до того, как представление "разобралось" само собой...

Не уверен, в чем разница, но это сработало.

-r

person user2887097    schedule 24.05.2014