1

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

请问有什么想法吗?

4

1 回答 1

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

祝你好运。

于 2010-11-16T21:17:16.803 回答