Возможным простым решением было бы применить ориентацию в начале сцены, а затем после того, как палаты повторно применили позиции ваших пунктов меню, чтобы все выровнялось.
я сделать следующее, чтобы изменить ориентацию экрана:
Во-первых, первая линия идет внутри метода инициализации я установить таймер для запуска после быстрой 0,5 секунды. Включение в таймер означает, что в моей игре переход сцены (fade) работает плавно, экран не поворачивается и не зацикливается тогда, но вам, вероятно, не понадобится использовать это.
[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
удачи.
Звучит как настоящий хак, но эй - если нет лучших решений, то это лучшее решение! Спасибо, что поделились, я снова посмотрю на это, как только закончу некоторые другие вещи. –