首页 文章

Game Center无法找到现有的回合制比赛

提问于
浏览
0

我正在写一个回合制的iPhone游戏,我似乎无法找到自己的游戏 . 我有三个帐户试图在我的游戏中匹配 - 一个在我的iPhone 5上,两个不同的Game Center测试帐户在iPhone模拟器中创建,我在通过游戏中心沙箱玩游戏之间切换 . 不幸的是,他们从未找到彼此并且总是自己创造新的游戏 . 我如何解决这个问题,以便他们总能找到现有的比赛,如果有比赛的话,只有在没有开放比赛的情况下才能创建新比赛?

1 回答

  • 0

    我假设您正在使用GKTurnBasedMatchmakerViewController来查找匹配并执行类似于此的操作:

    GKMatchRequest *request = [[GKMatchRequest alloc] init];
    request.minPlayers = 2;
    request.maxPlayers = 2;       
    GKTurnBasedMatchmakerViewController *mmvc = [[GKTurnBasedMatchmakerViewController alloc] initWithMatchRequest:request];
    mmvc.turnBasedMatchmakerDelegate = self;
    [self presentViewController:mmvc animated:YES completion:nil];
    

    在您的委托方法中,您可以这样做以确定这是一个全新的游戏还是您加入现有游戏:

    - (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController didFindMatch:(GKTurnBasedMatch *)match {
    
        int numberOfParticipants = [match.participants count];
        // check the number of valid participant ids to find out if you need to know if this is a "new" game or not.
        ....
    

    对于将用户与现有游戏配对的匹配,对手玩家必须通过在GKTurnedBasedMatch上调用此方法来“完成”他们的回合:

    - (void)endTurnWithNextParticipants:(NSArray *)nextParticipants turnTimeout:(NSTimeInterval)timeout matchData:(NSData*)matchData completionHandler:(void(^)(NSError *error))completionHandler;
    

相关问题