0

何らかの理由で、デバイスの回転を処理するための自動関数 (shouldAutorotateToInterfaceOrientation など) を使用できません。これを使用して、常に手動で行う必要がありました。

SOMETHING.view.transform = CGAffineTransformMakeRotation( angle * M_PI );

私はそれを本当に気にしません - 私は手動ですべてを回転させるのが好きです。Game Centerを除いて、これはうまくいきました。

マッチ メーカー (一緒にプレイする相手を探すウィンドウ) をローテーションすることに問題はありません。

同様の質問がここで尋ねられたのを見たので、念のためこれに言及しますが、それは私が抱えている問題ではありません:

GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];    
    mmvc.matchmakerDelegate = self;

    [presentingViewController presentModalViewController:mmvc animated:YES];
    mmvc.view.transform = CGAffineTransformMakeRotation( angle * M_PI ); 

これにより、Game Center のマッチメーカーが完全に正常に回転しますが、マッチメーカーの前にある実際の「サインイン」画面で同じことを行う方法がわかりません。私が作成したView Controllerはありません。「Authenticate」関数を呼び出すと、すべてが自動的に行われるようです。自動的に行われるため、結果のビューを制御する方法がわかりません。

- (void)authenticateLocalUser { 

if (!gameCenterAvailable) return;

NSLog(@"Authenticating local user...");
if ([GKLocalPlayer localPlayer].authenticated == NO) {     

     [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) {

     if ([GKLocalPlayer localPlayer].isAuthenticated)

     {

         // Perform additional tasks for the authenticated player.
          [[GCHelper sharedInstance] findMatchWithMinPlayers:2 maxPlayers:2 viewController:nil];

     }

     }];  
} else {
    NSLog(@"Already authenticated!");
}

}

この時点で、すでに「サインイン」画面が表示されており、それを制御する方法がわかりません。

自動機能を使用せずに、その画面(およびApple IDとパスワードを入力する次の画面)の向きをプログラムで変更するにはどうすればよいですか?

4

1 に答える 1

0

SDL 2.0 の最新バージョンでは、向きのサポートが大幅に改善されています。ここでは、任意の向きに表示および回転できる Game Center アプリで使用していますが、正常に動作します。

http://www.libsdl.org/tmp/SDL-2.0.zip

于 2012-10-27T10:40:16.123 に答える