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