К сожалению, я не очень хорошо понимаю UIViewControllers и не совсем понимаю, как они сочетаются со сценами cocos2d. Тем не менее, я могу загрузить стандартную таблицу лидеров Game Center поверх моей игры cocos2d (только для ландшафта) на iPhone. Но моя игра является универсальным приложением, и когда я пробую его на iPad, представление Game Center загружается в портретной ориентации, составляет примерно половину его размера (заполняет только одну четверть экрана) и не центрируется. Когда я поворачиваю устройство, представление Game Center ориентируется на альбомную ориентацию, но становится очень растянутым и выглядит так, как будто оно не предназначено для iPad в альбомной ориентации.
У кого-нибудь есть совет?
- (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];
}