1

デフォルトの cocos2d 1.0 ベータ テンプレートでは、AppDelegate.m にいくつかのコードがあります。

// AppDelegate.m
// IMPORTANT:
// By default, this template only supports Landscape orientations.
// Edit the RootViewController.m file to edit the supported orientations.

#if GAME_AUTOROTATION == kGameAutorotationUIViewController
    [director setDeviceOrientation: kCCDeviceOrientationPortrait];
#else
    [director setDeviceOrientation: kCCDeviceOrientationLandscapeLeft];
#endif

次に、GameConfig.h で、以下を定義しました。

// GameConfig.h
#define kGameAutorotationNone 0
#define kGameAutorotationCCDirector 1
#define kGameAutorotationUIViewController 2
//
// Define here the type of autorotation that you want for your game
#define GAME_AUTOROTATION kGameAutorotationUIViewController

一緒に、これは、デバイスの持ち方に応じて、横向きの左または横向きの右に自動回転する横向きのセットアップを作成するために機能していました. TableViews も同様に自動回転します (いくつかのテーブルをいくつかの cocos2d CCSscenes の上に配置しています)。

しかし...昨夜、iOS6にアップデートしました。XCode 4.5 と同様に。

私だけではないことを願っていますが、アプリのローテーションが完全に壊れています。少なくとも 1 つのテーブルビューのコードを使用して修正しようとしています... GAME_AUTOROTATION を変更してもテーブルビューには影響がないようです。

ゼロから始めて、事前に作成されたコードで作業するのではなく、何かを構築するだけかもしれませんが、これは非常にイライラします!! どうもありがとう、アップル!

4

2 に答える 2

1

私の部分的な解決策は

#if GAME_AUTOROTATION == kGameAutorotationUIViewController
    //[director setDeviceOrientation:kCCDeviceOrientationPortrait];
    [director setDeviceOrientation:kCCDeviceOrientationLandscapeRight];
#else
    [director setDeviceOrientation:kCCDeviceOrientationLandscapeLeft];
#endif

より良い解決策はありますか?

ありがとう

于 2012-09-26T17:06:09.197 に答える
0

答えは、自分のものを cocos2d 2.0 にアップグレードし、使用されなくなった RootViewController への依存を削除することでした。

navController_ = [[UINavigationController alloc] initWithRootViewController:director_];
navController_.navigationBarHidden = YES;

[window_ setRootViewController:navController_];
于 2012-09-28T08:11:16.163 に答える