Cocos2d肖像模式无法在iPhone上运行

时间:2011-05-13 03:54:07

标签: iphone xcode ios cocos2d-iphone

我正在构建一个应该处于纵向模式的cocos2d游戏。我将RootViewController.m更改为纵向模式,一切正常,无论是在模拟器上还是在我的iPad上。但是,当我在iPhone上运行游戏时,它会默认返回横向模式。

有关如何解决此问题的任何想法?

感谢。

5 个答案:

答案 0 :(得分:7)

我有一个更好的解决方案,可以100%工作:

替换RootViewController.m中的所有内容 shouldAutorotateToInterfaceOrientation方法如下:

  

return(UIInterfaceOrientationIsPortrait(interfaceOrientation));

如果我想在运行时/切换场景期间更改方向:

  

[[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationLandscapeLeft];

请注意,现在支持更长时间的自动旋转

答案 1 :(得分:1)

在GameConfig.h中

使用导演进行自动旋转

#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];

答案 2 :(得分:0)

RootViewController内部从以下方法返回false:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    return false; 

   // other code...

}

答案 3 :(得分:0)

在RootViewController.m中

return ( UIInterfaceOrientationIsLandscape( interfaceOrientation ) );

将此行更改为

return ( UIInterfaceOrientationIsPortrait( interfaceOrientation ) );

答案 4 :(得分:0)

在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