1

いくつか問題があります。私はちょうど開発を終えたcocos2dゲームを持っています。ただし、SIGABRT エラーをスローせずにゲーム センターにサインインするために、アプリの plist で縦向きを有効にする必要があるという問題に遭遇しました。したがって、アプリのビルド概要ページからそれを有効にすると (またはサポートされている向きとして info.plist ファイルに追加すると)、正常に動作します。しかし、私のゲームではいつでも、iPhone を回転させると、その方向に回転したことを感知するとポートレート モードに切り替わります。AppDelegate.m の shouldAutorotateToInterfaceOrientation メソッドをいじってみましたが、まったく呼び出されず、いつでも呼び出されていません。メソッドが呼び出されているかどうかを確認するために、メソッドに NSLog ステートメントをスローしましたが、そうではありません。

だから、基本的に私の本当の問題はです。Game Center のログイン画面がポップアップするとき以外に、ゲームを横向きモードのままにしておく必要があります。Cocos2d 2.0 ゲームでこれを行うにはどうすればよいですか?

iOS6を使用しています

4

3 に答える 3

3

まず、アプリがターゲット サマリーで縦向きと横向きをサポートしていることを確認します。

次に、ゲームが奇妙に回転し始めないように、強制的にランドスケープ モードにする新しいルート ビュー コントローラーを作成する必要があります。

@implementation CUSTOM_RootViewController
-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscape;
}

- (BOOL)shouldAutorotate {
    return YES;
}

@end

最後に、AppDelegate.m ファイルで、元のナビゲーション コントローラーを新しいものに置き換えます。

// Create a Navigation Controller with the Director
//navController_ = [[UINavigationController alloc] initWithRootViewController:director_];
navController_ = [[SMD_RootViewController alloc] initWithRootViewController:director_];
navController_.navigationBarHidden = YES;

これで、縦向きのビューを上に重ねることができるはずです。

お役に立てれば!

于 2012-12-06T02:30:37.067 に答える
1

このコードを AppDelegate.mm で使用します

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_6_0

-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscape;
}

- (NSUInteger)application:(UIApplication*)application supportedInterfaceOrientationsForWindow:(UIWindow*)window
{
    return UIInterfaceOrientationMaskLandscape;
}
#else
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
#endif
于 2012-12-06T11:35:49.017 に答える
0

iOS6ではshouldAutorotateToInterfaceOrientationメソッドが機能しなかったため、正常に機能した後、appDelegate.mファイル[windowaddSubview:viewcontroller]を[window setRootviewcontroller:viewcontroller]に変更します。

于 2012-12-06T06:26:15.363 に答える