我怎么称呼“ participantQuitOutOfTurnWithOutcome:withCompletionHandler:”?

问题描述 投票:1回答:2

我有一个基于回合的游戏,当有人不合时宜地从Game Center输掉游戏时,我试图结束游戏。我无法弄清楚当玩家轮流按下“没收”按钮时该怎么称呼。我要实施,

participantQuitOutOfTurnWithOutcome:withCompletionHandler:

但不知道将其放在哪里并调用它。我试图把它放在这里:

-(void)handleTurnEventForMatch:(GKTurnBasedMatch *)match

- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController playerQuitForMatch:(GKTurnBasedMatch *)match

但是当玩家不按顺序按下“没收”按钮时,似乎都没有被调用。我想念什么?

ios game-center
2个回答
0
投票

[一旦确定用户要放弃,您都将要呼叫participantQuitOutOfTurnWithOutcome:withCompletionHandler:-因此,在您的情况下,当他们点击“放弃”按钮时(可能在确认时单击“是”之后。)>

在那种情况下,您会想要这样的东西:

-(void)playerChoseToForfeit {
    [self.match participantQuitOutOfTurnWithOutcome:GKTurnBasedMatchOutcomeQuit withCompletionHandler:^(NSError *error) {
        //tell the user that they've forfeited (or not, if there's an error!)
    }];

}

基本上,它将在您自己的方法中,而不是(不一定)委托方法。


0
投票

问了这个问题五年后,Apple仍未更新GKLocalPlayerListener协议来处理这种情况。我也尝试仅依靠Game Center MatchMaker视图控制器(GC MMVC),遇到了您遇到的相同问题,如果用户不在轮到GC MMVC的时候就放弃了,那么比赛就是处于冲突状态:退出者“完成”,其余玩家“活跃”。

© www.soinside.com 2019 - 2024. All rights reserved.