0

我正在尝试使用游戏中心以编程方式创建实时多人游戏。我的问题是缺少文档,因为旧inviteHandler版本已被弃用。

我做的第一件事是身份验证:

- (void) authenticateLocalPlayer
{
    GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
    __weak GKLocalPlayer *blockLocalPlayer = localPlayer;
    localPlayer.authenticateHandler = ^(UIViewController *receivedViewController, NSError *error)
    {
        if (receivedViewController != nil)
        {
            [self presentViewController:receivedViewController animated:YES completion:nil];
        }
        else if (blockLocalPlayer.isAuthenticated)
        {
            [blockLocalPlayer registerListener:self];
        }
    };
}

之后,我按照苹果文档上的说明开始邀请过程。

- (void)invitePlayers:(NSArray *)friendsArray
{
    GKMatchRequest *request = [[GKMatchRequest alloc] init];
    request.minPlayers = 2;
    request.maxPlayers = 2;
    request.playersToInvite = friendsArray;
    request.inviteMessage = @"Your Custom Invitation Message Here";
    request.inviteeResponseHandler = ^(NSString *playerID, GKInviteeResponse response)
    {
        [self updateUIForPlayer: playerID accepted: (response == GKInviteeResponseAccepted)];
    };
}

我实现了以下方法,但它们从未被调用:

- (void)player:(GKPlayer *)player didAcceptInvite:(GKInvite *)invite
- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray *)playerIDsToInvite

如何让其他玩家收到邀请并做出回应?在苹果文档中,演示了不推荐使用的旧方式。

4

1 回答 1

0

尝试先注册一个GKLocalPlayer监听器,以便通过以下方法调用:

- (void)registerListener:(id<GKLocalPlayerListener>)listener 

应该符合这个协议:GKLocalPlayerListener

于 2014-01-30T12:54:36.383 回答