2014-02-02 4 views
4

Я попытался отобразить SKNodes, и я использовал ширину и высоту экрана, чтобы установить их позиции, чтобы сделать их совместимыми с разными размерами экрана.IOS: Не удается получить правильный размер экрана

SKNode* obstacle = [SKSpriteNode spriteNodeWithColor:[SKColor greenColor] size:obstacleSize]; 
obstacle.position = CGPointMake(80, self.size.height * 0.38); 
obstacle.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:obstacle.frame.size]; 

Но позиции узлов еще изменится, когда я запускаю программу с другим размером экрана (штраф в 3,5 дюйма, но неправильно в 4 дюйма). И я обнаружил, что self.size.height не является фактической высотой экрана.

Кто-нибудь знает, как решить эту проблему?

+1

не показывать сцену в видеDidLoad, переместить ее в viewWillLayoutSubviews, чтобы получить правильный размер. Посмотрите вокруг, чтобы найти правильный способ сделать это. – LearnCocos2D

ответ

4

[UIScreen mainScreen].bounds.size возвращает CGSize с шириной и высотой экрана. См. UIScreen Apple documentation.

+0

Спасибо. Я пробовал это, но я не думаю, что я получил правильную высоту ... – tingxuezisu

+0

Какие результаты вы получаете? – bneely

0

[UIScreen mainScreen].bounds.size должен вернуть правильный вектор ширины и высоты CGSize. Однако, если вы находитесь в ландшафте, значения будут отменены, то чего бы вы ожидали от портрета.

Смежные вопросы