1

我一直在两台设备上测试我的回合制游戏应用程序。当设备 1 退出时(通过滑动并从 GKTurnBasedMatchmakerViewController 中删除比赛),它会更新设备 2 以显示比赛已经完成(但它仍然在 GKTurnBasedMatchmakerViewController 中显示比赛是轮到其他玩家),但设备 1 没有更新!

它在 Game Over 部分下的 GKTurnBasedMatchmakerViewController 中说结束了比赛,但说“没有结果”,并且来自苹果纪录片 - 参与者的结果尚未确定(通常是因为比赛仍在进行中)。

我想知道如何将其设置为其他东西,以及通过退出这种方式(应该)调用什么方法。

提前致谢。

4

1 回答 1

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

    }

}
于 2013-01-13T02:20:51.303 回答