如何在GameKit中为对等比赛设置主机玩家



我有一个有两个玩家的GKMatch游戏,我用match.send((.将数据从一个玩家发送到另一个玩家

正如我所理解的,在没有服务器的对等比赛中,其中一名玩家将充当主机,从主机的设备中确定一些游戏逻辑。

我不知道如何将玩家设置为游戏主机,因为除了chooseBestHostingPlayer((之外,我看不到GameKit中的任何帮助功能,但返回是可选的,那么确定主机的保证方法是什么?

此外,在确定主机后,我是否仍会使用相同的sendMethod(如match.send(((来更新游戏状态,然后检查以确保只有当玩家是主机时才发送?

如对本主题有任何澄清,我们将不胜感激。

chooseBestHostingPlayer()实际上只是一个帮助找到网络连接最好的玩家的工具。你不必使用这个函数。

你可以用自己的方式来决定谁是";主机";或";服务器";。例如:通过投掷骰子

  1. 在游戏开始之前,每个客户端生成一个随机数并将其发送给其他玩家
  2. 编号最高的一个将成为主机
  3. 每个客户都会知道他们是否是主机,因为他们都有相同的随机数列表
  4. 在此之后;协商";,主机客户端然后可以发送开始游戏的命令

这里可以找到一个例子:https://www.kodeco.com/2485-game-center-tutorial-how-to-make-a-simple-multiplayer-game-with-sprite-kit-part-2-2(这是旧的Objc代码,但对其机制进行了解释(。

  1. 如果主机断开连接,每个客户端都会收到一条断开连接的消息,他们可以再次检查号码列表,以确定谁现在是新主机

最新更新