谷歌播放服务-在实时多人游戏中显示两台设备的屏幕变化



我想用谷歌播放服务构建一个实时多人游戏,当一名玩家在屏幕上移动一张卡时,另一名玩家会看到第一名玩家的移动。基本上,我不想在玩家之间只传一个分数,而是让他们在完全相同的屏幕上玩,看看对手的动作。

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

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

如果这有助于理解:假设我想使用谷歌播放服务构建一个实时赛车游戏,我如何让玩家看到彼此的汽车和汽车的运动?

有没有一个关于它的源代码示例,这样我就可以研究它了?

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

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

不幸的是,我没有正确地实现它,但我认为我已经接近了。

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

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

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

欢迎提问,祝你好运。

相关内容

最新更新