我是cocos2d API的新手,并注意到有几种方法可以在模板中设置屏幕方向。我无法弄清楚将方向设置为LandscapeRight的正确方法,并在整个游戏中保持这种方式。如何更改方向以保持LandscapeRight?任何帮助表示赞赏。谢谢!
答案 0 :(得分:8)
这里的答案已经改变了cocos2d 2.0,因为CCDirector现在是iOS上的ViewController:
CCDirector不再支持设备方向。所有自转和 设备方向现在由RootViewController处理。幸好, 可以使用[[UIDevice currentDevice] orientation]代替 [[CCDirector sharedDirector] deviceOrientation]。枚举是 同样,除了它们以UI而不是CC开头。
强制特定方向是返回YES的简单问题 只在RootViewController方法中的所需方向 shouldAutorotateToInterfaceOrientation。
Choosing between Cocos2D v1.x & 2.x and Tips for updating to Cocos2D 2.0 at learn-cocos2d.com
答案 1 :(得分:5)
从cocos2d模板修改GameConfig.h。
#define GAME_AUTOROTATION kGameAutorotationNone
/* original code is kGameAutorotationUIViewController. */
并修改AppDelegate.m。
#if GAME_AUTOROTATION == kGameAutorotationUIViewController
[director setDeviceOrientation:kCCDeviceOrientationPortrait];
#else
[director setDeviceOrientation:kCCDeviceOrientationLandscapeRight];
/* original code is "Left". */
#endif
答案 2 :(得分:3)
使用此行:
[[CCDirector sharedDirector] setDeviceOrientation:kkCCDeviceOrientationLandscapeRight];
答案 3 :(得分:1)
在RootViewController.m中,搜索行
return ( UIInterfaceOrientationIsPortrait(interfaceOrientation ));
将其更改为
return ( UIInterfaceOrientationIsLandscape(interfaceOrientation ));
答案 4 :(得分:0)
如果你添加了shouldAutorotateToInterfaceOrientation而没有解决你的问题
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
THEN 尝试将此行添加到appDelegate.m
[window_ setRootViewController:navController_];
祝你好运
答案 5 :(得分:-2)
正确答案 - 花了一些时间才找到 - 在info.plist中,更改支持的界面方向值,项目0和项目1有4个可能的值,纵向(顶部主页按钮)等。