#iphone #xcode #ios #cocos2d-iphone
#iPhone #xcode #iOS #cocos2d-iphone
Вопрос:
Я создаю игру cocos2d, которая должна быть в портретном режиме. Я изменил RootViewController.m на портретный режим, и все работает нормально, как на симуляторе, так и на моем iPad. Однако, когда я запускаю игру на своем iPhone, по умолчанию она возвращается в альбомный режим.
Есть идеи, как это исправить?
Спасибо.
Ответ №1:
У меня есть лучшее решение, которое будет работать на 100%:
Замените весь материал, который был в методе RootViewController.m / shouldAutorotateToInterfaceOrientation следующим:
возврат ( UIInterfaceOrientationIsPortrait (ориентация интерфейса));
И если я когда-нибудь захочу изменить ориентацию во время выполнения / переключения сцены:
[[CCDirector sharedDirector] Настройка ориентации устройства:CCDeviceOrientationLandscapeLeft];
Обратите внимание, что автоматический поворот теперь больше не поддерживается
Комментарии:
1. привет, Александр, я пробовал это, но перевернутый режим также включен. итак, как я могу включить ТОЛЬКО портретный режим?
2. используете ли вы Cocos2D 1.x или 2.0 beta?
Ответ №2:
в GameConfig.h:
используйте director для автоматического поворота
#if defined(__ARM_NEON__) || TARGET_IPHONE_SIMULATOR
#define GAME_AUTOROTATION kGameAutorotationCCDirector
вместо
#if defined(__ARM_NEON__) || TARGET_IPHONE_SIMULATOR
#define GAME_AUTOROTATION kGameAutorotationUIViewController
и в AppDelegate.m
- (void) applicationDidFinishLaunching:(UIApplication*)application
{
...
[director setDeviceOrientation:kCCDeviceOrientationPortrait];
Ответ №3:
Внутри RootViewController возвращает false из приведенного ниже метода:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return false;
// other code...
}
Ответ №4:
В RootViewController.m
return ( UIInterfaceOrientationIsLandscape( interfaceOrientation ) );
измените эту строку на
return ( UIInterfaceOrientationIsPortrait( interfaceOrientation ) );
Комментарии:
1. Да, это именно то, что я уже сделал. Он отлично работает в симуляторе и на моем iPad, но по какой-то причине не работает на моем iPhone.
2. но теперь работает только для портретного режима, мне нужны обе ориентации
Ответ №5:
в GameConfig.h:
For 1st and 2nd generation devices, value is set to kGameAutorotationNone, change it to kGameAutorotationUIViewController.
// ARMv6 (1st and 2nd generation devices): Don't rotate. It is very expensive
#elif __arm__
#define GAME_AUTOROTATION kGameAutorotationNone