Iphone cocos2d屏幕定向问题

Iphone cocos2d屏幕定向问题,iphone,ios4,rotation,cocos2d-iphone,screen-orientation,Iphone,Ios4,Rotation,Cocos2d Iphone,Screen Orientation,我使用cocos2d 0.99-rc0中的标准旋转代码来支持纵向+两种横向模式。我在纵向模式下显示菜单,然后屏幕旋转到横向进行实际游戏。问题是,当我回到肖像画,整个主菜单场景是关闭了一半的屏幕,就像有人移动了锚点或其他东西 有什么想法吗?一个可能的简单解决方案是在场景开始时应用方向,然后在重新应用菜单项的位置后,使其全部对齐 我执行以下操作以更改屏幕方向: 首先,第一行进入init方法内部,我设置了一个计时器,在快速0.5秒后启动。将其放入计时器意味着在我的游戏中,场景过渡(淡入)工作平稳,屏幕

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


有什么想法吗?

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

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

首先,第一行进入init方法内部,我设置了一个计时器,在快速0.5秒后启动。将其放入计时器意味着在我的游戏中,场景过渡(淡入)工作平稳,屏幕不会旋转/快速旋转,但您可能不需要使用此功能

[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

祝你好运。

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

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

首先,第一行进入init方法内部,我设置了一个计时器,在快速0.5秒后启动。将其放入计时器意味着在我的游戏中,场景过渡(淡入)工作平稳,屏幕不会旋转/快速旋转,但您可能不需要使用此功能

[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

祝你好运。

听起来像是一个真正的黑客,但是嘿-如果没有更好的解决方案,那么这就是最好的解决方案!谢谢分享,等我完成一些其他的东西后,我会再看看这个。听起来像是一个真正的黑客,但是嘿-如果没有更好的解决方案,那么这就是最好的解决方案!谢谢分享,等我完成一些其他的东西后,我会再看看这个。