我正在使用默认的cocos2d模板,对基本代码略有修改。
我的游戏只在左侧或右侧播放 - 没有人像。
当比赛开始时,它开始正确,然后颠倒翻转,然后再次向右翻转
我查看了几个关于这个问题的帖子,似乎无法指出是什么让界面在没有移动设备的情况下来回翻转。
感谢任何帮助!
我有以下相关代码:
RootViewController.m:
#if GAME_AUTOROTATION == kGameAutorotationUIViewController
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGRect rect = CGRectZero;
if(toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
rect = screenRect;
else if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
rect.size = CGSizeMake( screenRect.size.height, screenRect.size.width );
CCDirector *director = [CCDirector sharedDirector];
EAGLView *glView = [director openGLView];
float contentScaleFactor = [director contentScaleFactor];
if( contentScaleFactor != 1 ) {
rect.size.width *= contentScaleFactor;
rect.size.height *= contentScaleFactor;
}
glView.frame = rect;
}
#endif
的AppDelegate:
#if GAME_AUTOROTATION == kGameAutorotationUIViewController
[director setDeviceOrientation:kCCDeviceOrientationPortrait];
#else
[director setDeviceOrientation:kCCDeviceOrientationLandscapeRight];
#endif
GameConfig.h:
#define kGameAutorotationNone 0
#define kGameAutorotationCCDirector 1
#define kGameAutorotationUIViewController 2
#if defined(__ARM_NEON__) || TARGET_IPHONE_SIMULATOR
#define GAME_AUTOROTATION kGameAutorotationUIViewController
#elif __arm__
#define GAME_AUTOROTATION kGameAutorotationNone
答案 0 :(得分:3)
我今天遇到了同样的问题,它似乎是我的应用程序plist中支持的方向的顺序。应用程序将在Landscape Left中启动,向右翻转,然后再快速向左翻转。
我进入了“摘要”标签中的项目属性(您可以在其中配置支持的方向,应用图标,启动图像等)并取消选择所有支持的方向。
然后我按顺序再次勾选它们(Landscape Right,Landscape Left) - 并在“Info”选项卡中验证它们在数组中的顺序,在“Supported Interface Orientations”部分下。
项目0 - 风景(右主页按钮) 第1项 - 风景(左主页按钮)
之后没有问题,希望这有帮助。