0

大家好,正在为 iphone/ipod/ipad 应用程序开发通用版本。我试图让游戏中心在这个应用程序中工作。我现在有游戏中心在 ipad 上工作,但由于某种原因,它仍然无法在 ipod/iphone 上工作,我不知道为什么。

highScoreVC=[[UIViewController alloc] init];

    GKLeaderboardViewController *leaderboardController = [[[GKLeaderboardViewController alloc] init] autorelease];
    if (leaderboardController != nil)
    {
        leaderboardController.leaderboardDelegate = self;
        [[[CCDirector sharedDirector] openGLView] addSubview:highScoreVC.view];
        [highScoreVC presentModalViewController:leaderboardController animated: YES];
    }

这是我用于显示排行榜的代码,它每次都适用于 ipad,但正如我所说的不适用于其他设备。该代码仍然被称为与 ipad 相同的代码,所以我不知道它为什么不显示。任何想法为什么会这样?干杯

4

3 回答 3

0

就我而言, 如果设备到那时尚未通过 Game Center 进行身份验证,[GKLeaderboardViewController init]则会返回。nil您确定您在导致问题的设备上得到了正确的身份验证吗?

于 2011-01-18T00:51:24.493 回答
0

我怀疑如果您的 Game Center 的 UIKit 项目在 iPad 上运行良好但在 iPhone/iPod 上运行良好,那么它们的显示方式可能存在一些问题。在将应用程序转换为通用应用程序时,我遇到了类似的问题。

如果您创建一个新的独立 iPhone/iPod 项目只是为了测试,游戏中心显示是否正常?

于 2011-01-18T03:31:43.130 回答
0

好的,我最终让它工作了。cocos2d 0.99.5 确实对其工作方式进行了一些更改。以下代码正确显示排行榜

-(UIViewController*) getRootViewController{
return (UIViewController*)([(BubbleDreamsAppDelegate*) [[UIApplication sharedApplication] delegate] viewController]);

}

进而

highScoreVC = [self getRootViewController];


    GKLeaderboardViewController *leaderboardController = [[[GKLeaderboardViewController alloc] init] autorelease];

    if (leaderboardController != nil)
    {
        leaderboardController.leaderboardDelegate = self;

        [highScoreVC presentModalViewController:leaderboardController animated: YES];


    }

希望这可以帮助任何遇到同样问题的人

于 2011-01-19T18:43:01.057 回答