Cocos2d iphone Xcode 4.5和ios 6 sdk方向

Cocos2d iphone Xcode 4.5和ios 6 sdk方向,cocos2d-iphone,ios-simulator,ios6,kobold2d,Cocos2d Iphone,Ios Simulator,Ios6,Kobold2d,我知道这个主题已经启动了很多线程,但是没有一个线程能够解决这个问题。我一直在用kobold2d创建一个游戏,它使用cocos2d v1.1.0-beta2b,自从我升级到xcode 4.5和ios 6之后,所有的方向都被取消了。通常cocos2d应用程序将在横向模式下启动,但现在随着更新,它将在纵向模式下启动,并导致图层上的所有对象反转,但不知何故,这已经修复了自身。现在,我的项目在模拟器和ios设备上都以横向模式启动,但屏幕上的所有内容仍处于纵向模式。在我升级到最新的软件之前,一切都很好。我能

我知道这个主题已经启动了很多线程,但是没有一个线程能够解决这个问题。我一直在用kobold2d创建一个游戏,它使用cocos2d v1.1.0-beta2b,自从我升级到xcode 4.5和ios 6之后,所有的方向都被取消了。通常cocos2d应用程序将在横向模式下启动,但现在随着更新,它将在纵向模式下启动,并导致图层上的所有对象反转,但不知何故,这已经修复了自身。现在,我的项目在模拟器和ios设备上都以横向模式启动,但屏幕上的所有内容仍处于纵向模式。在我升级到最新的软件之前,一切都很好。我能做些什么来解决这个问题

因此,我决定使用较旧的xcode 4.4.1构建我的项目,并查看控制台中的输出与新的xcode 4.5有何不同,我发现:

xcode 4.5的输出

2012-09-21 14:50:54.558 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: OS version: 6.0 (0x06000000)
2012-09-21 14:50:54.560 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: GL_VENDOR:   Apple Computer, Inc.
2012-09-21 14:50:54.560 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: GL_RENDERER: Apple Software Renderer
2012-09-21 14:50:54.560 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: GL_VERSION:  OpenGL ES-CM 1.1 APPLE
2012-09-21 14:50:54.561 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: GL_MAX_TEXTURE_SIZE: 4096
2012-09-21 14:50:54.561 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: GL_MAX_MODELVIEW_STACK_DEPTH: 16
2012-09-21 14:50:54.562 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: GL_MAX_SAMPLES: 4
2012-09-21 14:50:54.562 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: GL supports PVRTC: YES
2012-09-21 14:50:54.563 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: GL supports BGRA8888 textures: YES
2012-09-21 14:50:54.563 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: GL supports NPOT textures: YES
2012-09-21 14:50:54.563 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: GL supports discard_framebuffer: YES
2012-09-21 14:50:54.564 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: compiled with NPOT support: NO
2012-09-21 14:50:54.564 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: compiled with VBO support in TextureAtlas : YES
2012-09-21 14:50:54.564 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: compiled with Affine Matrix transformation in CCNode : YES
2012-09-21 14:50:54.565 KTireHoops-iOS[4539:c07] -[CCConfiguration init] : cocos2d: compiled with Profiling Support: NO
2012-09-21 14:50:54.565 KTireHoops-iOS[4539:c07] -[CCDirector init] : cocos2d: cocos2d v1.1.0-beta2b
2012-09-21 14:50:54.566 KTireHoops-iOS[4539:c07] -[CCDirector init] : cocos2d: Using Director Type:CCDirectorDisplayLink
2012-09-21 14:50:54.566 KTireHoops-iOS[4539:c07] -[KKAppDelegate applicationDidFinishLaunching:] : Kobold2D™ v1.1.2
2012-09-21 14:50:54.571 KTireHoops-iOS[4539:c07] Retina Display enabled: YES
2012-09-21 14:50:54.573 KTireHoops-iOS[4539:c07] -[ES1Renderer resizeFromLayer:] : cocos2d: surface size: 480x320
2012-09-21 14:50:54.579 KTireHoops-iOS[4539:c07] -[AppDelegate initializationComplete] : ARC is either not available or not enabled
2012-09-21 14:50:54.609 KTireHoops-iOS[4539:c07] -[CCDirectorDisplayLink startAnimation] : startAnimation
2012-09-21 14:50:54.610 KTireHoops-iOS[4539:c07] -[CCDirectorDisplayLink startAnimation] : cocos2d: Frame interval: 1
xcode 4.4.1的输出

2012-09-21 14:52:01.343 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: OS version: 5.1 (0x05010000)
2012-09-21 14:52:01.345 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: GL_VENDOR:   Apple Computer, Inc.
2012-09-21 14:52:01.345 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: GL_RENDERER: Apple Software Renderer
2012-09-21 14:52:01.346 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: GL_VERSION:  OpenGL ES-CM 1.1 APPLE
2012-09-21 14:52:01.346 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: GL_MAX_TEXTURE_SIZE: 4096
2012-09-21 14:52:01.347 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: GL_MAX_MODELVIEW_STACK_DEPTH: 16
2012-09-21 14:52:01.347 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: GL_MAX_SAMPLES: 4
2012-09-21 14:52:01.347 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: GL supports PVRTC: YES
2012-09-21 14:52:01.348 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: GL supports BGRA8888 textures: YES
2012-09-21 14:52:01.348 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: GL supports NPOT textures: YES
2012-09-21 14:52:01.350 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: GL supports discard_framebuffer: YES
2012-09-21 14:52:01.350 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: compiled with NPOT support: NO
2012-09-21 14:52:01.351 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: compiled with VBO support in TextureAtlas : YES
2012-09-21 14:52:01.351 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: compiled with Affine Matrix transformation in CCNode : YES
2012-09-21 14:52:01.351 KTireHoops-iOS[5207:c07] -[CCConfiguration init] : cocos2d: compiled with Profiling Support: NO
2012-09-21 14:52:01.352 KTireHoops-iOS[5207:c07] -[CCDirector init] : cocos2d: cocos2d v1.1.0-beta2b
2012-09-21 14:52:01.352 KTireHoops-iOS[5207:c07] -[CCDirector init] : cocos2d: Using Director Type:CCDirectorDisplayLink
2012-09-21 14:52:01.353 KTireHoops-iOS[5207:c07] -[KKAppDelegate applicationDidFinishLaunching:] : Kobold2D™ v1.1.2
2012-09-21 14:52:01.360 KTireHoops-iOS[5207:c07] Retina Display enabled: YES
2012-09-21 14:52:01.361 KTireHoops-iOS[5207:c07] -[KKRootViewController shouldAutorotateToInterfaceOrientation:] : shouldAutorotateToInterfaceOrientation
2012-09-21 14:52:01.361 KTireHoops-iOS[5207:c07] -[KKRootViewController shouldAutorotateToInterfaceOrientation:] : shouldAutorotateToInterfaceOrientation
2012-09-21 14:52:01.362 KTireHoops-iOS[5207:c07] -[KKRootViewController shouldAutorotateToInterfaceOrientation:] : shouldAutorotateToInterfaceOrientation
2012-09-21 14:52:01.362 KTireHoops-iOS[5207:c07] -[KKRootViewController shouldAutorotateToInterfaceOrientation:] : shouldAutorotateToInterfaceOrientation
2012-09-21 14:52:01.362 KTireHoops-iOS[5207:c07] -[KKRootViewController shouldAutorotateToInterfaceOrientation:] : shouldAutorotateToInterfaceOrientation
2012-09-21 14:52:01.363 KTireHoops-iOS[5207:c07] -[KKRootViewController shouldAutorotateToInterfaceOrientation:] : shouldAutorotateToInterfaceOrientation
2012-09-21 14:52:01.396 KTireHoops-iOS[5207:c07] -[AppDelegate initializationComplete] : ARC is either not available or not enabled
2012-09-21 14:52:01.436 KTireHoops-iOS[5207:c07] -[CCDirectorDisplayLink startAnimation] : startAnimation
2012-09-21 14:52:01.437 KTireHoops-iOS[5207:c07] -[CCDirectorDisplayLink startAnimation] : cocos2d: Frame interval: 1
2012-09-21 14:52:01.438 KTireHoops-iOS[5207:c07] -[KKRootViewController shouldAutorotateToInterfaceOrientation:] : shouldAutorotateToInterfaceOrientation
2012-09-21 14:52:01.439 KTireHoops-iOS[5207:c07] -[ES1Renderer resizeFromLayer:] : cocos2d: surface size: 320x480
从我所看到的(shouldAutorotateToInterfaceOrientation)方法在ios 6的新xcode中不再被调用。这导致了奇怪的方向错误。有人知道这个问题的解决方法吗。

[编辑]上述链接不再有效。 原因可能是cocos2d iphone group已经修复了这个bug或其他什么

对于那些仍然有同样问题的人来说,更好的方法是谷歌


cocos2d iphone ios6定位错误

以下是快速修复方法:

  • AppDelegate.mm文件中替换该行

    [window_ addSubview:navController_.view];  
    

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0){
        [window_ setRootViewController:navController_];
    }
    else{
        [window_ addSubview:navController_.view];
    }
    
  • 在AppDelegate.mm中添加以下方法


    • 之所以发生这种情况,是因为苹果改变了管理UIViewController方向的方式。在Ios6或Ios6容器中,处理方式不同。在Ios6容器(如UINavigationController)中,不要咨询其子容器以确定是否应自动旋转。默认情况下,应用程序和视图控制器支持的界面方向对于iPad习惯用法设置为UIInterfaceOrientationMaskAll,对于iPhone习惯用法设置为UIInterfaceOrientationMaskAllButUpsideDown。因此,默认情况下,设备会更改方向。

      这是一个已知问题,您可以在cocos2d论坛中搜索。这是一个热修复程序,但此链接可能会更改回答问题时,最好在此处包含答案的基本部分,并提供链接以供参考。如果链接页面发生更改,则仅链接的答案可能无效。@CraigRinger感谢您指出这一点。因为我对objective-c了解不多,我可能无法提供更详细的答案,只是希望这个链接可以帮助提问者。下次我会尽量避免只回答链接。再次感谢。不用担心,值得注意的是,这些帖子会被版主工具标记。即使只是一些有用的链接文本,说明它的内容也会有所帮助。
      - (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
            return UIInterfaceOrientationMaskLandscape;
        }