我的GKMatch没有任何玩家……?

问题描述 投票:0回答:2
  • 我成功显示了一个配对屏幕。
  • 我在我的iPhone和模拟器中运行我的游戏。
  • 在两种情况下,我都使用不同的Game Center帐户登录。
  • 我在两个游戏中都进入配对屏幕。我按“立即播放”。两款游戏都开始寻找比赛。
  • 最后,两个游戏都找到一个匹配项并调用下面的函数:

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

}

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

iphone ios cocos2d-iphone gamekit game-center
2个回答
2
投票

可能是您实际上没有连接它们吗?

您实际上使用的是GKMatchmakerGKMatchmakerViewController吗?

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

恐怕我对游戏中心系统不熟悉。


4
投票

GKMatchmaker返回您的比赛之前玩家之间的连接;在这个阶段,所有参与者都在相互联系的过程中。

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

另外,某些播放器可能无法连接(我没有测试过这种情况,所以我不知道是否返回错误)

您正在寻找的是GKMatch.expectedPlayerCount

每当玩家连接到比赛时,此属性的值都会减小。当其值达到零时,将连接所有预期的玩家,您的游戏就可以开始比赛。

[我也怀疑GKMatch.playerIDs不包括玩家;即,您可能会在连接后立即看到ExpectedPlayerCount = 1。

我不确定GameKit如何处理线程。

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