0

我正在编写一个回合制 iPhone 游戏,但我似乎找不到自己的游戏。我有三个帐户试图在我的游戏中进行匹配 - 一个在我的 iPhone 5 上,以及在 iPhone 模拟器中创建的两个不同的 Game Center 测试帐户,我在所有通过 Game Center 沙盒玩我的游戏之间切换。不幸的是,他们从来没有找到彼此,总是自己创造新游戏。我该如何解决它,以便他们总是找到现有的匹配(如果有可用的匹配),并且仅在没有开放游戏的情况下创建新游戏?

4

1 回答 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;
于 2013-05-07T21:27:12.617 回答