如何禁用自动旋转?

我用cocos2d 0.99.5 + box2d创建了一个项目。 当我旋转我的iPhone时,屏幕也会自动旋转。 所以盒子飞到了天花板上。

如何禁用自动旋转?

PLZ

在coco2d 0.99.5中,模板创建一个名为GameConfig.h的文件,您可以在其中选择控制应用程序轮换的系统。 默认是

#define GAME_AUTOROTATION kGameAutorotationUIViewController 

现在来看看RootViewController.m,或者你在文件中命名的任何内容。 在里面

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 

方法,你会看到许多#if#elif编译器指令。 查看kGameAutorotationUIViewController发送给我们的部分:

 #elif GAME_AUTOROTATION == kGameAutorotationUIViewController // // EAGLView will be rotated by the UIViewController // // Sample: Autorotate only in landscpe mode // // return YES for the supported orientations if( interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight ) return YES; // Unsupported orientations: // UIInterfaceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown return NO; 

要将游戏保持在单一方向,请将中间if语句更改为:

 if( interfaceOrientation == UIInterfaceOrientationPortrait) return YES; 

或者你决定的任何方向是你想要的。 希望这可以帮助!

我在我的应用程序委托中有这个,无论我转向它,它都保持在横向:

 - (void) applicationDidFinishLaunching:(UIApplication*)application { // CC_DIRECTOR_INIT() // // 1. Initializes an EAGLView with 0-bit depth format, and RGB565 render buffer // 2. EAGLView multiple touches: disabled // 3. creates a UIWindow, and assign it to the "window" var (it must already be declared) // 4. Parents EAGLView to the newly created window // 5. Creates Display Link Director // 5a. If it fails, it will use an NSTimer director // 6. It will try to run at 60 FPS // 7. Display FPS: NO // 8. Device orientation: Portrait // 9. Connects the director to the EAGLView // CC_DIRECTOR_INIT(); // Obtain the shared director in order to... CCDirector *director = [CCDirector sharedDirector]; // Sets landscape mode [director setDeviceOrientation:kCCDeviceOrientationLandscapeLeft]; // Turn on display FPS [director setDisplayFPS:YES]; // Turn on multiple touches EAGLView *view = [director openGLView]; [view setMultipleTouchEnabled:YES]; // Default texture format for PNG/BMP/TIFF/JPEG/GIF images // It can be RGBA8888, RGBA4444, RGB5_A1, RGB565 // You can change anytime. [CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA8888]; [[CCDirector sharedDirector] runWithScene: [HelloWorld scene]]; }