Возможным простым решением было бы применить ориентацию в начале сцены, а затем после того, как подопечные повторно применили положения ваших пунктов меню, чтобы все они выровнялись.
Я делаю следующее, чтобы изменитьориентация экрана:
Во-первых, первая строка идет внутри метода инициализации. Я установил таймер на запуск через 0,5 секунды.Использование таймера в моей игре означает, что переход сцены (исчезновение) работает плавно, тогда экран не вращается и не вращается, но вам, вероятно, не понадобится это.
[self schedule:@selector(rotate:) interval:0.5];
-(void)rotate:(ccTime) dt{
[[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationLandscapeLeft];
[self unschedule:@selector(rotate:)];
}
ключевая строка ниже, вам не обязательно нужен таймер:
[[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationLandscapeLeft];
Конечно, вы можете изменить этот бит для разных ориентаций:
CCDeviceOrientationLandscapeLeft
CCDeviceOrientationLandscapeRight
CCDeviceOrientationPortrait
CCDeviceOrientationPortraitUpsideDown
Удачи.