【问题标题】:showing screen changes on both devices on realtime multiplayer game在实时多人游戏中显示两台设备上的屏幕变化
【发布时间】:2014-04-11 12:54:29
【问题描述】:

我想用 google play 服务构建一个实时多人游戏,当一个玩家在他的屏幕上移动一张卡片时,另一个玩家会看到第一个玩家所做的移动。基本上,我不想只在球员之间传递分数,而是让他们在完全相同的屏幕上比赛并看到对手的动作。

我遵循了这个教程:https://developers.google.com/games/services/android/realtimeMultiplayer

似乎玩家之间会发送字节数组。如何将整个游戏状态作为字节数组传递?

如果有助于理解:假设我想使用 google play 服务构建一个实时赛车游戏,我怎样才能让玩家看到彼此的汽车和汽车的运动?

有没有关于它的源代码示例,以便我研究它?

【问题讨论】:

    标签: google-play-services multiplayer google-play-games


    【解决方案1】:

    我遇到了类似的问题,我相信我有一些东西要你检查一下:

    http://www.tutorialspoint.com/java/java_serialization.htm

    很遗憾,我没有正确实现它,但我想我已经接近了。

    序列化的整个想法是,您将游戏状态作为一个对象(可能创建另一个类,如 Race State 或其他类),其中包含您的所有数据,作为字段,将其写入字节数组,然后返回该字节数组当您发送可靠/不可靠消息时(我仍然建议可靠,除非您计划纠正丢失/乱序数据包)。

    另一方面(读取数据包),您只需接受字节数组(在onMessageReceived() 中),调用getMessage()(我假设它会删除任何无关的传输数据),然后读取字节并将其转换为你的游戏状态对象。然后,您应该能够 get() 游戏状态的字段数据并根据需要使用。

    再说一次,这对我来说仍然是一项正在进行的工作(令人沮丧,我知道),但不要费心将字符串作为字节或编码发送,这会混淆数据。我希望文档对实现这一点更清楚一点,尽管它假设大多数人以前都使用过网络数据。

    如有问题,请随时发表评论,祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      相关资源
      最近更新 更多