我一直在两台设备上测试我的回合制游戏应用。 当设备1退出时(通过滑动并从GKTurnBasedMatchmakerViewController中删除匹配),它会更新设备2以显示匹配已完成(但它仍然在GKTurnBasedMatchmakerViewController中显示匹配是其他玩家的转弯),但设备1不更新!
它在Game Over部分的GKTurnBasedMatchmakerViewController中表示结束的比赛,但是说“没有结果”,并且来自苹果纪录片 - 参赛者的结果尚未设定(通常因为比赛仍在进行中)。
我想知道如何将其设置为其他东西,以及通过这种方式调用(假设)调用的方法。
提前致谢。
答案 0 :(得分:5)
- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController playerQuitForMatch:(GKTurnBasedMatch *)match {
if ([match.currentParticipant.playerID isEqualToString:[GKLocalPlayer localPlayer].playerID]) {
[match participantQuitInTurnWithOutcome:GKTurnBasedMatchOutcomeQuit nextParticipants:nextParticipant turnTimeout:GKTurnTimeoutNone matchData:data completionHandler:^(NSError *error) {
[match removeWithCompletionHandler:^(NSError *error) {
//Player quitted and match removed
}];
}];
}
else {
[match participantQuitOutOfTurnWithOutcome:GKTurnBasedMatchOutcomeQuit withCompletionHandler:^(NSError *error) {
[match removeWithCompletionHandler:^(NSError *error) {
//Player quitted and match removed
}];
}];
}
}
对于设备2
-(void)handleTurnEventForMatch:(GKTurnBasedMatch *)match {
if (player2.matchOutcome==GKTurnBasedMatchOutcomeQuit){
//Your opponent quitted do something
}
}