1

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

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

我不知道是否有办法做到这一点,或者这是否是最好的方法。我对此的想法是,我想通过邀请处理程序将邀请玩家所在的场景的名称发送给他们邀请的人。我假设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];
    }
};
4

0 回答 0