2011-04-05 97 views
0

我有一个开始菜单场景,我想在纵向中显示。游戏的其余部分处于标准横向方向。运行期间更改屏幕方向

我试图在幕后init方法如下:

[[CCDirector sharedDirector] setDeviceOrientation:kCCDeviceOrientationPortrait]; 

[[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationPortrait]; 

我的问题是,我怎么可以切换屏幕,取向在运行时?

在此先感谢! 亚历

回答

1

您需要使用下面的代码中,你要在横向视图控制器:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 
    return UIInterfaceOrientationLandscapeLeft; 
} 

该代码会强制视图控制器,只显示在景观左。你返回你想要支持的任何方向。

例如

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 
     return UIInterfaceOrientationLandscapeLeft && UIInterfaceOrientationLandscapeRight; 
    } 

我知道你使用的是cocos2d,但是这段代码在你的视图控制器中仍然可以正常工作。

+0

事情是,我不想支持自动旋转...我只想要一个特定的场景在纵向...如果你旋转设备什么都不应该发生 – 2011-04-05 14:31:47

+0

如果你使用第一块代码I张贴这是在该视图中将支持的唯一方向。它将无法旋转到任何其他方向。 – 2011-04-05 15:37:17

+0

只有当您的开始序列位于与应用程序的横向部分不同的视图控制器中时,才会起作用。 – 2011-04-05 15:45:43

0

我不确定要直接做些什么I. cocos2d。但是你可以把所有东西都放在一个单独的UIView中,然后对它进行90度旋转变换。有一个私人的API强制旋转设备,但它是应用程序商店的规则使用它,它也可能是不可预知的。

+0

thx的答案... ut不完全是我在找什么;) – 2011-04-05 15:06:13

+0

什么是你在寻找?您知道您处于横向模式,并且您想要以纵向显示单个屏幕吗?当你推动屏幕时,它应该已经是肖像?你想显示一个旋转动画?所有这些都可以通过手动旋转视图来实现。没有理由“强制旋转”设备。 – drewag 2011-04-05 16:55:22

+0

我有一个标准的Cocos2D项目,并且我已经在AppDelegate中指定了与我的StartMenu场景(应该是一个肖像取向)一起运行,然后,如果你点击说“play,levels或其他什么”一个风景方向。 – 2011-04-05 17:41:35