我正在开发一款棋盘游戏。使用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);
}];
我错过了什么或游戏中心是这样的吗?
我看到比赛的参与者在GKTurnBasedParticipant
为GKTurnBasedMatch.currentParticipant
之前不会收到邀请,但我需要在游戏开始时显示对手的详细信息。
感谢您的帮助。指出我正确的方向。
答案 0 :(得分:-1)
当您针对随机对手创建匹配时会发生这种情况。尝试在iTunesConnect中创建第二个测试用户,并在第二个设备上登录该用户。
然后,向第二个测试玩家发送邀请作为您的朋友。这样您就可以更轻松地使用多人游戏功能测试游戏,而无需等待随机匹配。
接受好友请求后,再次尝试制作新游戏。现在,邀请你的朋友'到你的游戏并开始轮到你。您现在将注意到(大部分) - (null)变量将被填充。这样的东西现在应该出现在您的日志中 -
GKTurnBasedParticipant 0xb9432e0 - playerID:G:123456789 status:Invited matchOutcome:None lastTurnDate:(null)timeoutDate:(null)