发送和接收GKTurnBasedMatch的邀请

时间:2014-04-08 06:30:26

标签: ios ios7 uikit game-center gamekit

我正在开发一款棋盘游戏。使用Game Center进行多人游戏,但目前仍然坚持如何发送或接收GKTurnBasedMatch的邀请。我使用以下编程方式创建匹配:

GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.defaultNumberOfPlayers = 2;

[GKTurnBasedMatch findMatchForRequest:request
                  withCompletionHandler:
                          ^(GKTurnBasedMatch *match, NSError *error) {
                              if(error) {
                                  NSLog(@"%@", error.localizedDescription);
                                  return;
                              }
                              [self.delegate startGameForMatch:match];
                          }];

上述块参数中的GKTurnBasedMatch实例,只有本地玩家与其他玩家为nil,我需要在游戏中显示对手的详细信息。

NSMutableArray *participantIds = [[NSMutableArray alloc] init];
NSLog(@"%@", match.participants);
for (GKTurnBasedParticipant *participant in match.participants) {
    if(participant.playerID) [participantIds addObject:participant.playerID];
}
[GKPlayer loadPlayersForIdentifiers:participantIds
          withCompletionHandler:^(NSArray *players, NSError *error) {
              NSMutableString *string = [[NSMutableString alloc] init];
              for (GKPlayer *player in players) {
                  [string appendFormat:@"---- Alias: %@ DisplayName: %@", player.alias, player.displayName];
              }
              NSLog(@"%@", string);
          }];

我错过了什么或游戏中心是这样的吗? 我看到比赛的参与者在GKTurnBasedParticipantGKTurnBasedMatch.currentParticipant之前不会收到邀请,但我需要在游戏开始时显示对手的详细信息。

感谢您的帮助。指出我正确的方向。

1 个答案:

答案 0 :(得分:-1)

当您针对随机对手创建匹配时会发生这种情况。尝试在iTunesConnect中创建第二个测试用户,并在第二个设备上登录该用户。

然后,向第二个测试玩家发送邀请作为您的朋友。这样您就可以更轻松地使用多人游戏功能测试游戏,而无需等待随机匹配。

接受好友请求后,再次尝试制作新游戏。现在,邀请你的朋友'到你的游戏并开始轮到你。您现在将注意到(大部分) - (null)变量将被填充。这样的东西现在应该出现在您的日志中 -

GKTurnBasedParticipant 0xb9432e0 - playerID:G:123456789 status:Invited matchOutcome:None lastTurnDate:(null)timeoutDate:(null)