cocos2d屏幕定位问题

时间:2010-11-16 08:57:09

标签: iphone ios4 rotation cocos2d-iphone screen-orientation

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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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

首先,第一行进入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
祝你好运。