xcode 如何在GameKit中为点对点比赛设置主机玩家?

icnyk63a  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(147)

我有一个有两个玩家的GKMatch游戏,我使用***match.send()***将数据从一个玩家发送到另一个玩家。
据我所知,在点对点比赛中,如果没有服务器,其中一个玩家将充当主机,从他的设备上确定一些游戏逻辑。
我不知道的是如何设置一个玩家作为游戏的主机,因为我在GameKit中除了***chooseBestHostingPlayer()***之外没有看到任何帮助函数,但是返回是可选的,那么什么是确定主机的可靠方法呢?
此外,在主机确定后,我是否仍然使用相同的sendMethod(如match.send())来更新游戏状态,然后检查以确保只有在玩家是主机时才发送它?
对这个问题的任何澄清都将受到高度赞赏,谢谢。

62o28rlo

62o28rlo1#

chooseBestHostingPlayer()确实只是帮助您找到网络连接最好的播放器,您不必使用此功能。
你可以用自己的方式来决定谁是“主机”或“服务器”。例如:掷骰子
1.在游戏开始之前,每个客户端生成一个随机数并将其发送给其他玩家。
1.编号最高的主机将成为主机。
1.每个客户端都将知道它们是否是主机,因为它们都具有相同的随机数列表。
1.在此“协商”之后,主机客户端然后可以发送命令以开始游戏。
这方面的一个例子可以在这里找到:https://www.kodeco.com/2485-game-center-tutorial-how-to-make-a-simple-multiplayer-game-with-sprite-kit-part-2-2(这是旧的Objc代码,但解释了其机制)。
1.在主机断开连接的情况下,每个客户端都将收到一条断开连接的消息,他们可以再次检查号码列表,以确定谁是现在的新主机。

相关问题