【问题标题】:My GKMatch has no players...?我的 GKMatch 没有玩家...?
【发布时间】:2011-07-28 11:41:51
【问题描述】:
  • 我成功让配对画面出现。
  • 我在 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


    【解决方案1】:

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

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

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

    你要找的是GKMatch.expectedPlayerCount

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

    我也怀疑GKMatch.playerIDs不包括播放器;也就是说,您可能会在连接后立即看到 expectedPlayerCount = 1。

    我不确定 GameKit 对线程做了什么。

    【讨论】:

    • 我会立即查看:)
    • 非常有趣,似乎 [self.myMatch expectedPlayerCount] 保持在 1。因此我想我真的没有设法连接两个玩家,对吧?但这很奇怪,iPhone 和模拟器都“找到了匹配”并关闭了匹配视图,所以我预计它们已经连接了......并且确定我使用的是两个不同的 Game Center 帐户。虽然我还没有机会在两部 iPhone 上进行测试,但对此有任何想法吗?
    • 我会尝试使用“真实”设备(我从未在模拟器上实际尝试过)。听起来也像stackoverflow.com/questions/4337481/…
    • 您在模拟器和设备之间找到解决方案了吗?我也遇到了同样的问题。
    • @HoratiuParaschiv:是的:不要使用 Game Center 模拟器。使用真实设备。
    【解决方案2】:

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

    您实际上在使用GKMatchmakerGKMatchmakerViewController吗?

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

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

    【讨论】:

    • 我会尽快检查两部具有两个不同帐户的 iPhone,并会尽快与您联系。并感谢您的赏金:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 2021-04-11
    相关资源
    最近更新 更多