【问题标题】:android real time multiplayer game - share data between players before the game startsandroid实时多人游戏-在游戏开始前在玩家之间共享数据
【发布时间】:2016-04-15 02:51:58
【问题描述】:

我正在用 android (google developers) 编写一个实时多人问答游戏。我从 googles Button Clicker 2000 的代码开始。我的问答游戏正在运行,但我遇到了一些问题。所有玩家都应该同时开始。在方法中

@Override public void onRoomConnected(int statusCode, Room room) {

我正在定义一个主机(1 个玩家)。主持人创建测验问题。创建后,他将问题发送给每个人。现在 onRoomConnected 方法完成了,游戏阶段开始了。但有时其他玩家没有足够早地收到他们的问题,我得到一个空指针异常。 有没有办法在所有玩家都收到问题后开始游戏?

提前致谢!

更新:

Ray Wenderlich 的实时多人游戏教程非常有帮助。一个有趣的章节是“同步游戏开始”。不幸的是,这不是我正在寻找的。 Tutorial Real Time Multiplayer

【问题讨论】:

  • 当您获得 NPE 时,statusCode 不是 STATUS_OK?如果发生这种情况,建议您必须处理onRoomConnected 中的错误。 API 类处理调用,因此一旦调用 onRoomConnected,我们就无法真正设置延迟计时器(如果我理解正确的话,即使您实现了 NPE 错误,它仍然会出现 NPE 错误)。
  • 我总是得到 STATUS_OK 代码。 NPE 发生在我的游戏逻辑阶段的后期。

标签: android google-play-services real-time google-play-games multiplayer


【解决方案1】:

在 OnRoomConnected() 中,最好确定主机是 GetParticipants() 中的 Participant[0],然后使用 SendMessage 将所需数据发送给其余玩家并在 OnRealtimeMessageReceived() 中解析。所有人都收到数据后开始游戏。

【讨论】:

  • 我已经实现了这个步骤。我的问题是:我什么时候知道每个人都收到了数据?
  • 如何将 GotData 消息发送回主机?一旦他从所有客户端收到该消息,就广播一个 START GAME 事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
相关资源
最近更新 更多