当有人接受并邀请cocos2D时,游戏中心邀请处理程序

时间:2012-04-20 04:22:38

标签: objective-c cocos2d-iphone game-center invite

如果两个玩家在同一个场景中你可以邀请他们,我会让它工作,当他们接受时,它会将它们添加到玩家列表中。

我没有工作,我不知道怎么做是当一个玩家不在应用程序中而另一个玩家在应用程序中发送邀请请求时,使正确的场景加载CCScene s。

我不知道是否有办法做到这一点,或者它是否是最佳方式。我对此的想法是,我想通过邀请处理程序将邀请玩家的人的场景名称发送给他们邀请的人。我假设我必须以某种方式向应用程序didFinishLaunchingWithOptions发送信息,如果它们不在应用程序中,但如果它们是我在其他地方有它的处理程序。我一直在寻找,没有遇到任何事情。如果你们知道如何做到这一点或更好的做法,我将非常感谢你的帮助。

以下是我用于邀请处理程序的代码:

[GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite *acceptedInvite, NSArray *playersToInvite) {
    UIViewController *topLevelViewController = self.presentingViewController;
    bool isInviter = NO;

    if (acceptedInvite) {
        isInviter = NO;
        GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithInvite:acceptedInvite] autorelease];
        mmvc.matchmakerDelegate = self;

        if ([topLevelViewController modalViewController] != nil)
            [topLevelViewController dismissModalViewControllerAnimated:NO];

        [topLevelViewController presentModalViewController:mmvc animated:YES];
    } else if (playersToInvite) {
        isInviter = NO;
        GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
        request.minPlayers = 2;
        request.maxPlayers = 2;
        request.playersToInvite = playersToInvite;

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

        if ([topLevelViewController modalViewController] != nil)
            [topLevelViewController dismissModalViewControllerAnimated:NO];

        [topLevelViewController presentModalViewController:mmvc animated:YES];
    }
};

0 个答案:

没有答案