【问题标题】:Missing Invitations in Game Center SandboxGame Center 沙盒中缺少邀请
【发布时间】:2013-02-06 04:05:28
【问题描述】:

我在使用 Game Center 时遇到了最奇怪的行为。

我正在与GKTurnBasedMatch 和朋友进行回合制比赛。本地播放器的身份验证完美运行。使用GKTurnBasedMatch 类方法loadMatchesWithCompletionHandler: 似乎明智地返回GKTurnBasedMatch 对象。为了发起新的比赛并邀请 Game Center 好友,我使用标准的GKTurnBasedMatchmakerViewController

当我使用GKTurnBasedMatchmakerViewController 创建匹配项时,当showExistingMatches 属性为YES 时,它们会显示在那里,供游戏创建者使用。

但是,如果我使用GKTurnBasedMatchmakerViewController 邀请其他玩家,接收玩家永远不会收到邀请。没有 Game Center 推送通知,也没有(除了一次或两次,偶尔)GKTurnBasedMatchmakerViewController 中带有“已邀请”标题的游戏。

奇怪的是,如果发起用户随后通过邀请结束他们创建的游戏,该玩家将收到“游戏结束”游戏中心通知。

使用loadMatchesWithCompletionHandler:,返回的matches 对邀请玩家有意义(正确participants 中的playerID 值,正确GKTurnBasedParticipantStatusparticipants 的值),但什么都没有显示为被邀请的玩家。

我在使用两台不同的设备,两台设备肯定都登录到了 Game Center 的沙盒模式,并且一切都在 iTunes Connect 等中设置好了。两个 Game Center 帐户都设置为接受邀请。

有人见过这样的吗?

【问题讨论】:

  • 你订阅GKTurnBasedEventHandlerDelegate了吗?我不确定这是否是您的问题,因为我认为委托消息是从 GameCenter 应用程序本身发起的。只是另一个需要注意的边缘案例。
  • 好建议。我的问题一直是在处理任何事情之前。游戏中心本身的推送通知没有出现,这很奇怪。我想我已经解决了这个问题(见答案)。现在的工作是确保他们来时得到GKTurnBasedEventHandlerDelegate 和其他人的妥善处理。

标签: ios objective-c cocoa game-center gamekit


【解决方案1】:

可能的解决方案:当邀请者迈出第一步并发送消息 endTurnWithNextParticipants:turnTimeout:matchData:completionHandler: 时,我没有在第一个参数中发送正确的参与者,因此轮到被邀请者的位置从未设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多