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