2014-02-10 44 views
1

我正在尝试测试多人游戏的自动匹配功能。没有4人,我的游戏就无法开始。我打电话给这里的方法当多于2个玩家时,多人等待室不显示连接玩家

Bundle am = RoomConfig.createAutoMatchCriteria(3, 3, 0); 

      // build the room config: 
      RoomConfig.Builder roomConfigBuilder = makeBasicRoomConfigBuilder(); 
      roomConfigBuilder.setAutoMatchCriteria(am); 
      RoomConfig roomConfig = roomConfigBuilder.build(); 

我试过在2个设备上测试。等候室没有显示任何人连接到彼此的问题。然而,当我修改代码,是一个游戏“2名玩家只”

Bundle am = RoomConfig.createAutoMatchCriteria(1, 1, 0); 

然后,两个设备连接,一切都像一个魅力。

这是为什么?我wouldve预期,因为它们连接

感谢

回答

1

这是正常现象候车室将显示玩家。当一名玩家在候车室(如果您决定选择包含的候车室)进行AUTO-MATCH场景时,直到该服务找到所有将在该房间内的玩家,AUTO-MATCH玩家中的任何一个都不会看到任何其他连接AUTO-MATCH。

现在,如果您在同一个房间中有INVITED和AUTO-MATCH,那么在邀请被接受的时候,INVITER和INVITEES将会显示等候室。

所以,在你的4人游戏场景中。如果INVITER(猎豹)邀请泰山和珍妮进入房间(并且您的程序选择第四个作为AUTO-MATCH),然后开始等候室序列,Cheetah将为Tarzan和Jane设置一个带有插槽的候车室,并等待被填充的自动匹配。

现在我们假设一个随机玩家也按下了他们的加入游戏。他们将有一个空白的等候室,3个插槽显示“自动挑选”。

Tarzan首先获得邀请并进入。猎豹和Tarzan现在都会与Tarzan和Cheetah在等候室中说“Invite Accepted”并等待Jane和“自动挑选”。随机玩家将仍然拥有3个插槽。

然后简得到邀请并加入战斗。她,猎豹和泰山现在将有等候室为其中的3个显示“Invite Accepted”,并且随着Auto-Pick人仍在那里,Google将抓住他并立即填补第四个位置。因此,Cheetah,Tarzan和Jane将在第四个插槽中看到类似P_4356的内容,而Auto-Pick人员将立即看到3个插槽,与P_4356名称相似。

如果当我们的丛林三人已经进入了房间,然后他们都将盯着他们与第四届“自动选取”屏幕,直到有人确实在加入有在那里没有可用的自动选取播放器。

我米不知道这是最好的行为,但它是它是什么...

+0

你好,谢谢soooo这个解释。这种行为很糟糕。因为如果没有4名玩家并且所有人都是自动匹配,游戏无法开始。然而,只有3个被发现,现在你想用机器人填补第四个位置。没有办法实现这一点!它可以是0个玩家或4个自动匹配。我希望能够启动一个计时器,并在到期时间内提供任何点,以填充机器人。我想我必须使用不同的多人api,然后:(除非你能指出围绕 – Snake

+0

)你可以使用受邀玩家的时间到期,但是没有,有自动挑选行为,没有那么多。我能想到的唯一解决方法变得非常复杂(再次因为api)。如果您确实与最多4名玩家进行了自动匹配,那么如果只有2或3名玩家自动匹配加入,那么您可以使用该信息来启动您的机器人。然而,缺点是Google没有任何保证,如果有4人同时进行自动比赛,他们不会继续比赛,并且匹配2和2(甚至3比1,并且让1出局在寒冷中直到另一个出现)。 – user2346305

+0

这就是问题,谷歌API不会告诉你,如果2或3自动匹配。它会告诉你“找到4个”或“找到0个”。当一个或多个连接时,不会调用listsener或通知 – Snake