2011-05-13 10 views
5

Estoy construyendo un juego de Cocos2d que se supone que está en modo retrato. Cambié el RootViewController.m al modo vertical, y todo funciona bien, tanto en el simulador como en mi iPad. Sin embargo, cuando ejecuto el juego en mi iPhone, vuelve al modo paisaje.modo de retrato Cocos2d no funciona en iPhone

¿Alguna idea sobre cómo solucionar esto?

Gracias.

Respuesta

7

tengo una mejor solución que se trabajo 100%:

Reemplazar todas las cosas que estaba en el/ Método shouldAutorotateToInterfaceOrientation RootViewController.m con siguiente:

retorno (UIInterfaceOrientationIsPortrait (interfaceOrientation));

Y si alguna vez quiero cambiar la orientación durante el tiempo de ejecución/conmutación escena:

[[CCDirector sharedDirector] setDeviceOrientation: CCDeviceOrientationLandscapeLeft];

Tenga en cuenta que la rotación automática ahora es el más largo apoyado

+0

hey alexander, lo he intentado, pero el modo al revés también está habilitado. Entonces, ¿cómo puedo SOLO habilitar el modo de retrato? – OMGPOP

+0

¿está utilizando Cocos2D 1.xo 2.0 beta? –

0

Dentro de la RootViewController return false desde el siguiente método:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 

    return false; 

    // other code... 

} 
0

En RootViewController.m

return (UIInterfaceOrientationIsLandscape(interfaceOrientation)); 

cambio de esta línea para

return (UIInterfaceOrientationIsPortrait(interfaceOrientation)); 
+0

Sí, esto es exactamente lo que ya lo hacía. Funciona bien en el simulador y en mi iPad, pero por alguna razón no funciona en mi iPhone. – Nick

+0

pero ahora solo funciona para modo retrato, quiero ambas orientaciones –

1

en GameConfig.h:

utiliza el director para auto rotación

#if defined(__ARM_NEON__) || TARGET_IPHONE_SIMULATOR 
#define GAME_AUTOROTATION kGameAutorotationCCDirector 

en lugar de

#if defined(__ARM_NEON__) || TARGET_IPHONE_SIMULATOR 
#define GAME_AUTOROTATION kGameAutorotationUIViewController 

y en AppDelegate.m

- (void) applicationDidFinishLaunching:(UIApplication*)application 
{ 
... 
[director setDeviceOrientation:kCCDeviceOrientationPortrait]; 
0

en 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 
Cuestiones relacionadas