回合制游戏玩家无需对手调用 takeTurn 即可接收自己的数据

Turn Based Game player receives its own data without opponent calling takeTurn

我一直在实现自己的回合制棋盘游戏。整个游戏基于 PlayGameService 的 SkeletonTbmp example 并进行了一些修改。

我的问题是玩家有时会收到自己的数据,然后使用 takeTurn() 发送给对手。我检查了很多次 getNextParticipantId() returns 正确的 id。例如,我的模拟器保留移动数据并将其正确发送到我的实际 Android phone 并且我的 phone 不保留,如示例中所实现的。然后几秒钟后,我的模拟器接收到相同的数据,而实际设备没有保存它并调用 takeTurn()。这有时也会发生在第一回合的游戏开始时,模拟器接收第一个 "dummy" 回合数据而实际设备尚未发送任何内容。它不会每回合都发生,只是偶尔发生。

这可能与我的 Google Play 控制台设置有关,还是这些转弯缓冲了一些如何然后在某个时候释放它们?

由于您没有提供任何代码,我无法查明问题所在。但只是为了说明,只要比赛进行,比赛就会包含数据,无论是否轮到你。要查明发生这种情况的确切位置,请检查 updatematch() 的执行情况,因为它必须在没有实际需要的情况下触发。 (登录、重新连接、启动、连接提示等)。不能确定你的代码,但绕过错误的替代方法,你实际上可以在 MATCH_TURN_STATUS_MY_TURN 之外检查 turncounter 否则通过空转。希望它能对您有所帮助,因为没有您的代码我无法提供帮助。

似乎我只是忘记总是从 "check games"-UI 中删除旧游戏,这就是为什么它在一段时间后发送相同的数据,而我已经在参加一个新游戏同一个对手的比赛。