1)完全按照Google的意圖工作。沒有任何保證,如果你使用createAutoMatchCriteria(1,3,0)3個對手將被發現你的遊戲。在我的測試中,(同時請求4個設備)90%或更多的時間它將成爲2場比賽中的2場比賽開始。只有當我有一個設備邀請朋友或手動選擇AutoPick,那麼獲得3或4個玩家遊戲的機會大大增加(否則,純自動匹配產生2和2行爲)
2)如果我理解這種行爲是正確的,你會讓一個玩家離開等候室(通常是首先發起的設備),然後另一個玩家加入,但是第一個玩家離開等候室,另一個玩家離開了等待室?如果是這樣,那麼你需要確保你使用以下(我做在onRoomConnected
try {
bWaitRoomDismissedFromCode = true;
finishActivity(RC_WAITING_ROOM);
} catch (Exception e) {
dLog("would have errored out in waiting room");
}
這將然後關閉對於那些在候車室還是任何玩家候車室,並讓他們回到你的活動從下面,如果你想要「開始遊戲」的行爲,這隻有在邀請玩家已經接受邀請才能進入房間的情況下。(如果谷歌意味着它的工作進行自動匹配的另一種方式,他們沒有得到它那裏還)
公衆意向getRealTimeWaitingRoomIntent(客房,詮釋minParticipantsToStart)
返回的意圖,將顯示「等待房間「屏幕顯示加入實時多人空間的參與者的進度。請注意,這必須通過startActivityForResult(Intent,int)來調用,以便可以建立調用包的標識。
如果所需數量的對等體已連接並且現在可以開始遊戲,或者用戶明確要求現在開始遊戲,則活動結果將爲RESULT_OK。如果用戶未進行任何操作就退出候車室屏幕,則結果將爲RESULT_CANCELED。如果用戶明確選擇離開房間,則結果將是RESULT_LEFT_ROOM。
無論結果代碼是什麼,等候室活動都會返回一個包含EXTRA_ROOM中的Room對象的數據意圖,該數據意圖表示您最初在此處作爲參數傳遞的Room的當前狀態。
如果需要,等候室可以允許用戶在房間完全連接之前開始玩遊戲。這由minParticipantsToStart參數控制:如果至少有許多參與者(包括當前玩家)連接到房間,則在候車室用戶界面中將啓用「開始玩」菜單項。將minParticipantsToStart設置爲0意味着「開始播放」將始終可用,並且值MAX_VALUE將完全禁用該項目。注意:如果你確實允許用戶提前開始,你需要明確地告訴其他連接的同伴現在正在開始遊戲;請參閱開發者文檔以獲取更多詳細信
最後,請注意,候診室本身不會明確採取任何行動來改變房間或其參與者的狀態。因此,如果活動結果爲RESULT_LEFT_ROOM,實際上離開房間是主叫方的責任。或者如果結果是RESULT_CANCELED,則調用者有責任仔細檢查房間的當前狀態並決定是開始遊戲,繼續等待還是做其他事情。但請注意,雖然候車室處於活動狀態,但隨着參與者接受或拒絕邀請,會議室的狀態將發生變化,而且參加者的人數可能會隨着自動匹配球員的增加而改變。
3)Google Play遊戲服務(用於自動匹配)不具有此行爲。只有當一個房間的所有參與者被服務器找到並選擇時,房間纔會真正被連接(onRoomCreated並不意味着已經建立了通信室,如果他們在等待其他人加入...並且可以在服務擁有所有其他玩家時切換)onRoomConnected是對所有連接玩家的最後一次呼叫,並且表示房間已準備好傳遞消息。現在,如果你有intivees,行爲會改變,那麼是的,你可以看到一個被邀請者接受,但是如果他們離開了房間......沒有辦法讓它由AutoMatch填充,但你可以看到他們離開。 ..(多好啊?)
4)如果遊戲使用的是GPGS,那麼一旦創建了一個房間並將其放到onRoomConnected舞臺上,它就會被播放,並且不能再與該房間進行任何匹配。所以當你加入一個房間時,其他人都同時加入。所以當玩家離開時,其他人將無法加入。
公共抽象無效onRoomConnected(INT的StatusCode,客房)
當在實時房間裏所有的參與者都是完全連接調用。一旦所有的邀請被接受並且任何必要的自動匹配已經完成,這被調用。可能的狀態代碼包括:
STATUS_OK如果數據已成功加載並且是最新的。 STATUS_CLIENT_RECONNECT_REQUIRED如果客戶端需要重新連接到服務才能訪問此數據。 如果服務中發生意外錯誤,則爲STATUS_INTERNAL_ERROR。 參數 room完全連接的房間對象。如果無法成功加載,則該房間可以爲空。
欣賞答案,尤其是數字3.我認爲這些信息對很多人都會有很大的幫助。 – user3294654