代码改变世界

采用cocos2d 1.1版本若是要实现屏幕为竖屏显示怎样修改

  张智清  阅读(1222)  评论(0编辑  收藏  举报

有时候,就那么喜欢另类。偏偏不要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));




 


作者:张智清
出处: http://www.cnblogs.com/lovecode/archive/2327974.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示