2014-04-11 32 views
0

我想用谷歌播放服务构建一个实时多人游戏,当玩家在他的屏幕上移动一张牌时,另一个玩家看到第一个玩家所做的移动。基本上,我不想在球员之间传球,但实际上让他们在完全相同的屏幕上进行比赛并看到他们的对手的动作。显示实时多人游戏上的两个设备上的屏幕更改

我跟着这个教程:https://developers.google.com/games/services/android/realtimeMultiplayer

而且似乎喜欢的玩家互相发送的字节数组。我如何将整个游戏状态作为字节数组传递?

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

有关于它的源代码的例子,所以我可以研究它吗?

回答

0

我遇到了类似的问题,我相信我有东西给你检查出:

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

不幸的是,我还没有正确实现它,但我想我越来越接近。

序列化的整个想法是,你将你的游戏状态作为一个对象(可能会创建另一个类,比如Race State或其他类),它将所有数据作为字段写入字节数组,然后返回该字节阵列当您发送可靠/不可靠的消息(我仍然建议可靠,除非您打算纠正丢失/乱序数据包)。另一方面(读取数据包),你只需接受字节数组(onMessageReceived()),调用getMessage()(我假设摆脱了任何多余的传输数据),然后读取字节并将其转换为您的游戏状态对象。然后,您应该能够根据您的需要为您的游戏状态提供现场数据。

对于我来说,它仍然是一项工作(令人沮丧,我知道),但不要打扰以字节或编码形式发送字符串,这会混淆数据。我希望这个文档能够更加清晰地实现这一点,尽管它假设大多数人以前曾使用过网络数据。

随意评论的问题,祝你好运。

相关问题