重启游戏Game Center

Restart game Game Center

我正在使用 Game Center 创建实时比赛,并且正在处理重启按钮。当游戏结束时,它会将您带到另一个屏幕,显示每个人的分数,并且在该屏幕上有一个重新启动按钮。如果有人按下它,他们的名字会变成绿色,如果他们离开游戏,他们的名字会变成红色。一旦每个人都点击重启或离开游戏,游戏将通过再次呈现游戏场景重新开始。

尽管如此,他们都在略有不同的时间执行此操作,有时其中一个设备会在其他设备进入游戏场景之前向其他设备发送信号,因此消息是' 被解释,只是迷路了。所以我的问题是,有什么办法可以确保所有玩家都在同一时间进入下一个场景吗?

您可以在场景加载后进行同步。您永远无法保证每个人都以相同的方式加载 time/rate。

所以,

  • 1-示意大家加载,
  • 2-每个人都在加载,
  • 3-还不显示场景或渲染任何相关内容,
  • 4-等待大家发出就绪信号(有些人可能要 重复发送就绪信号以解决边界加载问题 问题),
  • 5- 每个人都收到准备好的信号,
  • 6-用户现在可以显示场景,
  • 7- 通过向所有人发送另一个 'ready signal' 来做最后一次检查 (再次有些可能要播放多次),
  • 8-确认收到最后一个来自所有人的信号后,游戏就可以开始了。

这种冗余是为了确保用户能够在显示场景之前和之后适当地进行广播。当然,在这个过程中有很多隐式错误检查和超时检查,如果有杂散用户无法广播,那么他们可能只需要考虑在给定的时间后启动比赛,以便其他人玩家仍然可以玩。

此外,这是我最好的方法,可以尽可能多地将内容同步到您可以尝试并确保信号不会丢失的地方。做一个同步程序,然后开始发送相关信号。

您无法保证不同用户的下一个屏幕的确切时间,您可以让它们尽可能接近。

重要的部分不是屏幕显示,而是确保所有用户都处于正确的状态以接收其他人广播的下一组数据。

不同的网速和不同的设备速度总是会阻碍完美的视觉同步。