0

我正在尝试使用我自己的自定义用户界面以编程方式实现随机匹配。

我有点卡住了。。

使用在苹果网站上找到的这段代码,我可以毫无问题地创建匹配

- (void)findProgrammaticMatch
{
    GKMatchRequest *request = [[GKMatchRequest alloc] init];

    request.minPlayers = 2;
    request.maxPlayers = 2;


    [GKTurnBasedMatch findMatchForRequest: request withCompletionHandler:^(GKTurnBasedMatch *match, NSError *error)
     {
         if(error)
             NSLog(@"ERROR");
         if (match) {

             NSLog(@"STARTING MATCH");
         }

     }];
}

如果我做 match.participants.count 我得到数字 2...

但一个参与者是我,另一个是空的

我所做的测试是创建 2 个沙盒帐户,我用我的另一个游戏中心帐户运行相同的代码,我创建了一个新游戏,.. 但由于某种原因它与它们不匹配.. 我错过了什么吗?

我一直在谷歌上寻找例子,但我似乎找不到任何..如果你们中有人知道我能找到一些例子,我将不胜感激

4

1 回答 1

0

好吧,您可能会错过基于轮流匹配的关键点。如果用户未连接到现有匹配,则当用户开始自动匹配时,它将开始新的游戏并且用户进行第一轮。只有在他完成他的回合后,其他用户才能连接到这个游戏。因此,如果您要进行 2 人比赛:一个用户应该开始一个新游戏,此时另一个用户为空,另一个用户应该在第一个用户完成他的回合后连接到这个现有游戏(调用 endTurnWithMatchData)

这在文档中不是很清楚(我鄙视游戏中心文档,不清楚且不完整),但 sdk 6 就是这种情况。我认为它会在不久的将来发生变化。

于 2013-02-22T12:13:47.203 回答