有时候,就那么喜欢另类。偏偏不要cocos2d默认的横屏显示,那我们具体要如何定义修改成竖屏呢?
首先,采用cocos2d创建一个默认项目,在applicationDidFinishLaunching里对于屏幕的设置代码如下:
#if GAME_AUTOROTATION == kGameAutorotationUIViewController
[director setDeviceOrientation:kCCDeviceOrientationPortrait];
#else
[director setDeviceOrientation:kCCDeviceOrientationLandscapeLeft];
#endif
现在直接修改成[director setDeviceOrientation:kCCDeviceOrientationPortrait];已经无法实现竖屏显示了。经摸索找到以下方法:
方法一:修改GameConfig.h文件
#define kGameAutorotationNone 0
#define kGameAutorotationCCDirector 1
#define kGameAutorotationUIViewController 2
我的版本是修改为:
#define kGameAutorotationNone 0
#define kGameAutorotationCCDirector 1
#define kGameAutorotationUIViewController 0
才能最终实现竖屏显示。
方法二:修改RootViewController.m文件的shouldAutorotateToInterfaceOrientation:方法
// 清除有关旋转方向判断的语句,只有return NO
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Shold not happen
return NO;
}
或者将elif GAME_AUTOROTATION == kGameAutorotationUIViewController宏定义代码下的默认代码:
return (UIInterfaceOrientationIsLandscape(interfaceOrientation));
修改为以下竖屏代码:
return (UIInterfaceOrientationIsPortrait(interfaceOrientation));