我的GKMatch没有球员......?

时间:2011-04-03 02:45:35

标签: iphone ios cocos2d-iphone gamekit game-center

  • 我成功地制作了一个配对屏幕。
  • 我在iPhone和模拟器中运行游戏。
  • 在这两种情况下,我都使用其他游戏中心帐户登录。
  • 我在两场比赛中都进入了配对屏幕。我按“现在玩”。两场比赛都开始寻找比赛。
  • 最后,两个游戏都找到匹配并调用以下函数:

- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)match
{
    self.myMatch = match;
    NSLog(@"%d",[[self.myMatch playerIDs]count]);

}

但是我的控制台返回0.不应该返回2吗?

2 个答案:

答案 0 :(得分:4)

GKMatchmaker在玩家之间建立连接之前返回一个匹配;在这个阶段,所有的球员都在相互联系的过程中。

  

playerIDs属性最初设置为已连接到比赛的玩家数量;数组可能为空。每当玩家连接到比赛时,该玩家的球员标识符就会被添加到阵列中。

此外,有些玩家可能无法连接(我没有测试过这种情况,所以我不知道你是否收到错误)

您正在寻找的是GKMatch.expectedPlayerCount

  

只要玩家连接到匹配项,此属性的值就会递减。当它的值达到零时,所有预期的玩家都会被连接,你的游戏就可以开始比赛了。

我还怀疑GKMatch.playerIDs不包括播放器;即你在连接后可能会立即看到expectedPlayerCount = 1。

我不确定GameKit对线程的作用。

答案 1 :(得分:2)

你真的没有连接它们吗?

你实际上在使用GKMatchmaker和GKMatchmakerViewController吗?

在您的测试中,您确定使用的是两个不同的游戏中心帐户?

我担心我对游戏中心系统并不熟悉 - 但我已经增加了100点赏金,所以你可以希望得到答案!