残念ながら、私はUIViewControllerをうまく理解していませんし、cocos2dシーンとどのようにマッシュアップしているのかも分かりません。しかし、私はiPhone上で正常に自分のcocos2d(ランドスケープオンリー)ゲームの上に標準的なGame Centerのリーダーボードビューを読み込むことができます。しかし、私のゲームは普遍的なアプリであり、iPadで試してみると、ゲームセンタービューは縦向きに読み込まれ、サイズの約半分(画面の1/4しか満たされない)になり、中央に配置されません。私がデバイスを回転させると、Game Centerのビューは景観に向かうが、実際には伸びてしまって、iPad用に設計されていないように見えます。GKLeaderboardViewControllerを使用しているときのオリエンテーションの問題
誰にもアドバイスがありますか?
- (void) showLeaderboard
{
if(![MyAppDelegate isGameCenterAPIAvailable])
return;
if ([GKLocalPlayer localPlayer].isAuthenticated == YES)
{
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
tempVC = [[RootViewController alloc] init];
GKLeaderboardViewController *leaderboard = [[[GKLeaderboardViewController alloc] init] autorelease];
if (leaderboard != NULL)
{
leaderboard.leaderboardDelegate = self;
[[[CCDirector sharedDirector] openGLView] addSubview:tempVC.view];
// Pause game
[[CCDirector sharedDirector] pause];
[tempVC presentModalViewController:leaderboard animated: NO];
leaderboard.view.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0.0f));
[leaderboard.view setCenter:CGPointMake(screenSize.height/2, screenSize.width/2)];
leaderboard.modalPresentationStyle = UIModalPresentationCurrentContext;
}
}
}
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{
[tempVC dismissModalViewControllerAnimated: YES];
[tempVC.view.superview removeFromSuperview];
[tempVC release];
tempVC = nil;
// Resume game
[[CCDirector sharedDirector] resume];
}
この回答は役に立ちました。ただし、iOS 4.3.x以降、iPad用の標準のGame Centerリーダーボードビューはないことが判明しました – jonsibley