我正在构建一个应该处于纵向模式的cocos2d游戏。我将RootViewController.m更改为纵向模式,一切正常,无论是在模拟器上还是在我的iPad上。但是,当我在iPhone上运行游戏时,它会默认返回横向模式。
有关如何解决此问题的任何想法?
感谢。
答案 0 :(得分:7)
我有一个更好的解决方案,可以100%工作:
替换RootViewController.m中的所有内容 shouldAutorotateToInterfaceOrientation方法如下:
return(UIInterfaceOrientationIsPortrait(interfaceOrientation));
如果我想在运行时/切换场景期间更改方向:
[[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationLandscapeLeft];
请注意,现在支持更长时间的自动旋转
答案 1 :(得分:1)
:
使用导演进行自动旋转
#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)
:
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