我在使用Game Center时遇到了奇怪的问题。我正在使用GKTurnBasedMatch和相关类来设置回合制比赛。本地玩家的身份验证完全正常。使用GKTurnBasedMatch类方法loadMatchesWithCompletionHandler:似乎返回了合理的GKTurnBasedMatch对象。为了向Game Center好友发起新比赛和邀请,我使用标准的GKTurnBasedMatchmakerViewController。
当我使用GKTurnBasedMatchmakerViewController创建比赛时,只要showExistingMatches属性为YES,则对于游戏创建者来说,在GKTurnBasedMatchmakerViewController中就会显示这些比赛。
但是,如果我使用GKTurnBasedMatchmakerViewController邀请另一个玩家,接收方玩家将永远不会收到邀请。没有Game Center推送通知,也没有(除了一两次,而且零星出现)在GKTurnBasedMatchmakerViewController中显示“已邀请”的比赛。
奇怪的是,如果初始用户结束他们通过邀请创建的游戏,那么该玩家将会收到“游戏结束”Game Center通知。
使用loadMatchesWithCompletionHandler:对于邀请玩家来说,返回的matches对于邀请玩家是没有意义的(参与者上的正确playerID值,participant上的正确GKTurnBasedParticipantStatus),而邀请玩家根本不会看到任何东西。
我使用两个独立设备,两个设备都明确登录到Game Center的沙盒模式,并且在iTunes Connect等方面进行了一切设置。两个Game Center账户都设置为接受邀请。
有人见过这样的情况吗?
当我使用GKTurnBasedMatchmakerViewController创建比赛时,只要showExistingMatches属性为YES,则对于游戏创建者来说,在GKTurnBasedMatchmakerViewController中就会显示这些比赛。
但是,如果我使用GKTurnBasedMatchmakerViewController邀请另一个玩家,接收方玩家将永远不会收到邀请。没有Game Center推送通知,也没有(除了一两次,而且零星出现)在GKTurnBasedMatchmakerViewController中显示“已邀请”的比赛。
奇怪的是,如果初始用户结束他们通过邀请创建的游戏,那么该玩家将会收到“游戏结束”Game Center通知。
使用loadMatchesWithCompletionHandler:对于邀请玩家来说,返回的matches对于邀请玩家是没有意义的(参与者上的正确playerID值,participant上的正确GKTurnBasedParticipantStatus),而邀请玩家根本不会看到任何东西。
我使用两个独立设备,两个设备都明确登录到Game Center的沙盒模式,并且在iTunes Connect等方面进行了一切设置。两个Game Center账户都设置为接受邀请。
有人见过这样的情况吗?
GKTurnBasedEventHandlerDelegate
?我不确定那是否是你的问题,因为我认为该委托消息是从GameCenter应用程序本身启动的。这只是另一个需要注意的边缘情况。 - livingtechGKTurnBasedEventHandlerDelegate
和其他方式得到适当的处理。 - Tim Arnold