Cocos2d - Настройка устройства / Ориентация экрана - PullRequest
1 голос
/ 26 апреля 2011

Я новичок в API-интерфейсе cocos2d и заметил, что есть несколько способов установить ориентацию экранов в шаблонах. Я не смог найти правильный способ установить ориентацию на LandscapeRight и сохранять ее на протяжении всей игры. Как изменить ориентацию, чтобы она поддерживала LandscapeRight? Любая помощь приветствуется. Спасибо!

Ответы [ 6 ]

8 голосов
/ 16 октября 2012

Ответ здесь изменился с cocos2d 2.0, поскольку CCDirector теперь является ViewController на iOS:

CCDirector больше не поддерживает ориентацию устройства. Все авторотации и Ориентация устройства теперь обрабатывается RootViewController. К счастью, [[UIDevice currentDevice] ориентация] может использоваться вместо [[CCDirector sharedDirector] deviceOrientation]. Перечисления являются то же самое, за исключением того, что они начинаются с UI вместо CC.

Принудительная ориентация - это просто возвращение ДА. только до желаемой ориентации в методе RootViewController shouldAutorotateToInterfaceOrientation.

Выбор между Cocos2D v1.x и 2.x и советами по обновлению до Cocos2D 2.0 на веб-сайте learn-cocos2d.com

5 голосов
/ 27 апреля 2011

Измените GameConfig.h из шаблона cocos2d.

#define GAME_AUTOROTATION kGameAutorotationNone
/* original code is kGameAutorotationUIViewController. */

И также измените AppDelegate.m.

#if GAME_AUTOROTATION == kGameAutorotationUIViewController
    [director setDeviceOrientation:kCCDeviceOrientationPortrait];
#else
    [director setDeviceOrientation:kCCDeviceOrientationLandscapeRight];
    /* original code is "Left". */
#endif
3 голосов
/ 27 апреля 2011

Используйте эту строку:

[[CCDirector sharedDirector] setDeviceOrientation:kkCCDeviceOrientationLandscapeRight];
1 голос
/ 27 апреля 2011

В RootViewController.m найдите строку

return ( UIInterfaceOrientationIsPortrait(interfaceOrientation ));

изменить на

return ( UIInterfaceOrientationIsLandscape(interfaceOrientation ));
0 голосов
/ 27 октября 2014

, если вы добавили долженAutorotateToInterfaceOrientation и не решили вашу проблему

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}

ТО Попробуйте добавить эту строку в appDelegate.m

[window_ setRootViewController:navController_];

Удачи

0 голосов
/ 02 января 2013

Правильный ответ - мне потребовалось некоторое время, чтобы найти - находится в info.plist, измените значения поддерживаемых ориентаций интерфейса, пункт 0 и пункт 1 имеют 4 возможных значения, Портрет (верхняя домашняя кнопка) и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...