2013-05-06 2 views
1

У меня есть iPhone 4S (работает iOS 5.1) & iPhone 5 (работает под управлением iOS 6.1). Я заметил, что когда я пытаюсь открыть игру cocos2D, на iPhone 4S, работающем под управлением 5.1, игра способна отлично открываться в ландшафтном режиме.Как повернуть игру cocos2D в ландшафтный режим в iOS 6?

Однако, когда я пытаюсь открыть ту же самую игру cocos2D на своем iPhone 5 под управлением 6.1, игра открывается в портретном режиме.

Есть ли способ, которым я могу повернуть игру cocos2D в ландшафтный режим в iPhone 5 под управлением iOS 6.1.

Некоторые дополнительные примечания:

  • Игра выталкивается из контроллера представления в моем тестовом приложении.
  • Поскольку я запускаю игру из приложения iOS, мне приходится поддерживать портретный режим в разделе «Ориентация интерфейса поддержки». (Если бы я просто делал игру, я просто легко установить ориентацию интерфейса Поддержка альбомной влево/пейзаж вправо)

Я также пробовал различные методы, такие, как для IOS 6, такие как:

-(NSUInteger)supportedInterfaceOrientations 
-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
-(BOOL)shouldAutorotate 

Но это дало мне разные результаты, когда я пробовал эти методы.

В идеале, я хотел бы, чтобы приложение было заблокировано в режиме Портрет и игра для блокировки в альбомном режиме.

Итак, мне интересно, возможно ли иметь приложение, которое остается заблокированным в режиме портрета, и игра заблокирована в ландшафтном режиме (для iOS 5 & iOS 6) при открытии?

Вот ссылка на пример проект я работал на:

http://www.4shared.com/zip/yEAA1D_N/MyNinjaGame.html

ответ

1

Что я делаю для пейзажа в моей cocos2d игре (на прошивке 6.1):

//This is in the AppDelegate.m 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return UIInterfaceOrientationIsLandscape(interfaceOrientation); 
//change to 'return UIInterfaceOrientationIsPortrait(interfaceOrientation);' for portrait 
} 
+0

Спасибо за ваш ответ, stenger98. Я пробовал этот метод, и это не решило проблему. Это был, по сути, один из первых методов, которые я реализовал. Есть ли другие предложения, которые у вас могут быть? Есть ссылка 4shared, которую я написал выше, которую вы можете использовать, чтобы попробовать. – Kofi

+0

Хорошо, я скачаю его и протестирую, как только вернусь домой. Просто чтобы быть понятным, вы пытаетесь заставить приложение быть только ландшафтом на iOS 6.1? – stenger96

+0

Я хочу, чтобы * только * игра была только в ландшафте для iOS 5.0 и iOS 6.1. iOS 5.0+ в порядке, но проблема кроется в iOS 6.0+. Остальное приложение должно быть в портрете. Имейте в виду, что устройство и iOS Simulator могут давать разные результаты, по моему опыту. Пока это работает на устройстве, не проблема. :) – Kofi

2

I просто установите режимы ориентации в Xcode (вкладка «Сводка» на вашей цели) влево и вправо. Затем для каждого UIViewController я добавил следующее:

// Autorotation iOS5 + iOS6 
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation { 
    return UIInterfaceOrientationIsLandscape(toInterfaceOrientation); 
} 
Смежные вопросы