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的主要内容,如果未能解决你的问题,请参考以下文章
Android Google Play 游戏服务回合制多人游戏不自动匹配