2014-09-17 2 views
0

У меня есть приложение iOS Cocos2D, предназначенное для работы в ландшафтном режиме. При моделировании приложения на iPhone 5 устройств, я использую следующий код, чтобы получить размеры экрана:Разрешение пикселей в Xcode 6 для проекта Cocos2D

CGSize screenSizeInPixels = [CCDirector sharedDirector].winSizeInPixels; 

Выполнение этого кода дает screenSizeInPixels.width = 1136.0f и screenSizeInPixels.height = 640.0f. Но когда я имитирую/выполняю тот же код в Xcode 6, я получаю как раз наоборот: screenSizeInPixels.width = 640.0f и screenSizeInPixels.height = 1136.0f.

Почему размеры пикселей меняются на противоположные?

+0

, вероятно, по той же причине, что и всегда: это зависит от того, когда/где начинается первая сцена и является ли приложение пейзажным или портретным приложением. Первоначально все приложения запускаются в портретном режиме перед переходом в альбомный режим, после чего размер изменяется, чтобы отразить это. – LearnCocos2D

+0

@ LearnCocos2D Приложение представляет собой ландшафтное приложение (то есть ориентация устройства в Xcode - это альбомная слева и справа). В appDelegate я сначала запустил окно и создаю режиссера. В этот момент, если я посмотрю на winSizeInPixels, ширина равна 1136. Затем я установил ориентацию устройства с помощью [director setDeviceOrientation: kCCDeviceOrientationLandscapeRight]; В этот момент, если я посмотрю на winSizeInPixels, ширина изменится на 640. В коде ничего не изменилось. В Xcode 5 это поведение в обратном порядке. Я не знаю, является ли это проблемой версии iOS или проблемой Xcode. Как можно устранить этот – JeffB6688

+0

возможный дубликат? http://stackoverflow.com/questions/25777136/spritebuilder-project-with-wrong-node-positions-in-xcode-6/25777349#25777349 –

ответ

0

Это ошибка в IOS SDK:

https://github.com/cocos2d/cocos2d-swift/issues/973

одно решение в этом вручную установить желаемую ориентацию в info.plist, то кажется, что все работает нормально. Меня устраивает.

+0

Не уверен, что я понимаю ваше предложение. У info.plist уже есть запись для поддерживаемых ориентаций интерфейса. Это устанавливается, когда вы выбираете ориентацию устройства на вкладке «Общие» для целевого приложения (т. Е. Тот же вид, где вы устанавливаете параметры сборки, этапы и т. Д.). Для меня моя желаемая ориентация была Пейзаж (левая кнопка дома). Я могу вручную перезаписать это значение, но это практически не приводит к изменениям. Неужели я не понимаю ваше предложение? – JeffB6688

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