cocos2d屏幕方向问题

问题描述:

我正在使用cocos2d 0.99-rc0中的标准旋转代码来支持纵向+两种横向模式。我在纵向模式下显示菜单,然后屏幕旋转为实际游戏的横向。问题在于,当我回到肖像时,整个mainmenu场景都被屏幕的一半关掉,就像有人移动了锚点或其他东西一样。cocos2d屏幕方向问题

有什么想法吗?

一个可能的简单解决方案是在场景开始时应用方向,然后在病房重新应用菜单项的位置后使其全部对齐。

我执行以下操作来更改屏幕方向:

首先,第一行进入我设置一个计时器快速0.5秒之后开始init方法内。将它放入计时器意味着在我的游戏中,场景过渡(淡入淡出)可以顺利进行,屏幕不会随即旋转/倒转,但您可能不需要使用它。

[self schedule:@selector(rotate:) interval:0.5]; 

-(void)rotate:(ccTime) dt{ 
    [[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationLandscapeLeft]; 
    [self unschedule:@selector(rotate:)]; 
} 

重点线低于,你不一定需要定时器:

[[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationLandscapeLeft]; 

当然你也可以改变此位为不同的方向:

CCDeviceOrientationLandscapeLeft 
CCDeviceOrientationLandscapeRight 
CCDeviceOrientationPortrait 
CCDeviceOrientationPortraitUpsideDown 

好运。

+0

听起来像一个真正的黑客,但嘿 - 如果没有更好的解决方案,那么这是最好的解决方案!感谢分享,一旦我完成一些其他的东西,我会再次看看这个。 – 2010-11-17 07:53:03