2014-02-10 52 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