在我的游戏中,我试图允许用户根据与朋友的匹配开始转弯。我在表格中向用户显示朋友,用户选择一个。一旦用户选择朋友,游戏就开始并且用户第一次转弯。当所选的朋友安装了游戏时,一切正常。如果朋友没有安装游戏,则匹配结束并且GKTurnBasedParticipant状态为Declined。
这是创建匹配的代码。
GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = 2;
request.maxPlayers = 2;
request.playersToInvite = @[playerId]; // this is the player id selected from the friends table
[GKTurnBasedMatch findMatchForRequest:request withCompletionHandler:^(GKTurnBasedMatch *match, NSError *error) {
if (error == nil && match != nil){
[self startNewMatch:match];
}
}];
重现的步骤:
预期:匹配正在等待设备2轮流。
实际:匹配已结束,状态为GKTurnBasedMatchStatusEnded,而设备2 GKTurnBasedParticipant的状态已拒绝。
如果设备2是模拟器而不是匹配进入正确的状态,那么事情就会变得更有趣。