如何在Google Play游戏服务实时多人游戏中获取随机地图

时间:2014-08-04 15:55:22

标签: java android google-play-games

我正在努力让我的游戏发挥作用,以便当玩家玩自动匹配游戏时,玩家将在随机选择的地图上玩。我尝试使用room.getCreationTimestamp()来使用最后一位数的余数作为地图的索引,但似乎创建时间戳对于不同的玩家来说并不相同。我也试过房间id从那里得到一个字节,但每个玩家的id都不一样。

所以房间里的变量或字段在不同的游戏中会有所不同,但对于同一游戏中的每个玩家来说都是相同的,或者是获得随机选择的地图的替代方式,对于每个玩家来说都是相同的

1 个答案:

答案 0 :(得分:1)

让游戏通过其他方式生成随机数,然后将此数字推送给所有其他玩家。

如果所有设备都被认为是相同的(没有服务器/客户端安排),那么您需要决定哪个设备生成随机数。对于回合制游戏,这很容易。你的是实时的,所以可能更尴尬。

这就是我要做的......

对于实时游戏,每个玩家的设备的流程应如下所示;

  • 阅读所有玩家的ID,为此您可以在getParticipantIds()某种对象上使用Room
  • 获取此设备/播放器的ID,可以使用getParticipantId ()对象上的Participant为特定房间完成此操作(我认为您有一个)
  • 决定哪个ID应该是随机数。最简单的方法是选择最低的参与者ID
  • 如果所选ID是当前设备的ID,则生成随机数并将其作为消息发送给所有其他参与者
  • 如果所选ID不是当前设备的ID,则等待带有随机数的消息。

应该这样做。所有玩家现在都可以就随机数达成一致。