J'ai rencontré un problème étrange. Dans mon utilisateur jeu multijoueur décide combien d'adversaires ils veulent jouer avec (jusqu'à 3), et après qu'ils ont décidé que je créer un autoMatchCriteria comme this-L'automatch multijoueur en temps réel de Google ne fonctionnera pas pour plus d'un adversaire.
Bundle am = RoomConfig.createAutoMatchCriteria(opponentCount, opponentCount, 0);
Et créer une chambre-
// build the room config:
RoomConfig.Builder roomConfigBuilder = makeBasicRoomConfigBuilder();
roomConfigBuilder.setAutoMatchCriteria(am);
RoomConfig roomConfig = roomConfigBuilder.build();
// create room:
Games.RealTimeMultiplayer.create(((MainActivity) getActivity()).getGoogleApiClient(), roomConfig);
Ceci déclenche le paramètre onJoinedRoom() ou onRoomCreated() de RoomUpdateListener en conséquence. Et pendant que l'utilisateur attend dans une salle d'attente, il obtient des mises à jour de statut de salle dans onPeersConnected() de RoomStatusUpdateListener quand un pair est connecté et après que les joueurs minimum requis sont connectés, le jeu peut être démarré.
Mais lorsque l'utilisateur sélectionne plus d'un adversaire, onPeersConnected() n'est appelé qu'une fois, voire pas du tout, et le joueur connecté attend indéfiniment jusqu'à ce qu'il quitte la pièce.
Je l'ai essayé avec la salle d'attente de google et curieusement cela a fonctionné pour chaque compte d'adversaire. Donc, si quelqu'un peut me signaler ce que je fais mal, ce serait une aide précieuse. Je vous remercie.