Google Play 游戏服务 createAutoMatchCriteria MIN_OPPONENTS > 1

Posted

技术标签:

【中文标题】Google Play 游戏服务 createAutoMatchCriteria MIN_OPPONENTS > 1【英文标题】:Google Play Game Services createAutoMatchCriteria MIN_OPPONENTS > 1 【发布时间】:2017-07-24 04:55:02 【问题描述】:

我是第一次摆弄 GPGS android API,但在让自动匹配正常工作时遇到了一些问题。我一直在使用ButtonClicker样本,似乎与之一样大 - 选择“快速游戏”时,候诊室出现,我可以连接两个玩家,所有回调都按预期开火。

如果我进行一项更改,以便使用 min_opponents = 2、max_opponents = 2 而不是 1 调用 createAutoMatchCriteria,则等候室启动并显示 2 个对手的占位符,但是我无法让任何玩家连接 - 永远不会调用 onPeerJoined 并且两台设备只是继续等待,好像都不知道对方可用。

要启用 3 人游戏,还需要做些什么吗?我不确定这个样本是否支持超过 2 名玩家的实际游戏,但似乎等候室部分应该尝试建立一个有 3 名参与者的房间。有人知道我做错了什么吗?

谢谢!

【问题讨论】:

查看 GPGS 文档中的 Quick Game Option 指南。代码示例 Bundle am = RoomConfig.createAutoMatchCriteria(1, 1, 0);可以通过将第一个参数更改为 3 来调整以包含多达 3 名玩家作为指南状态。 这就是我所做的,但是当我将其设置为大于 1 时,由于某种原因,我无法再获得任何对等连接。 【参考方案1】:

显然这是一个已知问题:

https://github.com/playgameservices/android-basic-samples/issues/9

回调会在满足最小值时触发,但在添加玩家时不会一次触发一个。

作为一种解决方法,我尝试保存在 onRoomCreated 中返回的 Room 对象并轮询以查看该房间中的参与者是否在添加玩家时发生变化,但它不会更新。有谁知道解决这个问题的方法,并弄清楚何时一次添加一个玩家?

【讨论】:

以上是关于Google Play 游戏服务 createAutoMatchCriteria MIN_OPPONENTS > 1的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 游戏服务 - 无法登录游戏中心

Android Google Play 游戏服务回合制多人游戏不自动匹配

java - Google Play 游戏服务

Android 模拟器上的 Google Play 服务和 Google Play 游戏应用

Google Play 游戏服务实时多人游戏停止工作

使用“Google Play 游戏服务”玩游戏时突然断开连接