在 GKMatchmakerviewcontroller 中处理取消

Handling cancel in GKMatchmakerviewcontroller

我正在为我制作的游戏制作多人游戏功能。

一切正常,除了当我在配对并且两个玩家都已连接时,如果一个人点击 "Cancel" 按钮,另一台设备不会收到取消通知。

在另一台设备上,文字变为 "Disconnected",但是 none 的委托方法被调用。

我该如何处理?

您应该实施 GKMatchmakerViewControllerDelegate 协议。

不幸的是,没有一种方法(据我所知,或者经过将近 3 个月的研究发现)会在一个人开始连接后在配对中断开连接时调用。

因此,我解决这个问题的方法是,一旦 GameViewController 出现,它会等待一秒钟,然后调用一个方法来检查它是否已连接到其他人。

为了做到这一点,我有它,所以一旦游戏开始,每个玩家都会向另一个玩家发送一个随机数(用于稍后确定不相关的设置 - 例如谁先走)。当它调用该方法来检查它是否已连接时,它只是检查是否已分配随机数。如果是,那么它会正常开始游戏,如果不是,它会结束游戏并返回菜单。