Prérequis
Pour recevoir des notifications d’invitation de jeu sur un PC Windows, installez la XBOX Game Bar. L’application XBOX Game Bar est installée par défaut sur Windows 10, version 1903 ou ultérieure du système d’exploitation. Appuyez sur Touche Windows+G pour lancer l’application XBOX Game Bar et vérifier qu’elle est correctement installée.Si la XBOX Game Bar n’est pas installée sur votre PC Windows, vous pouvez l’installer depuis le Microsoft Store.
Inscription au protocole multijoueur
L’inscription au protocole multijoueur indique au système comment lancer votre jeu lorsque l’utilisateur accepte une invitation de jeu multijoueur. Pour inscrire le protocole multijoueur, vous devez ajouter un élémentMultiplayerProtocol à votre fichier MicrosoftGame.config, comme indiqué dans le code suivant.
Executable, comme indiqué dans le code suivant.
Inscription aux rappels d’invitation de jeu multijoueur
Les API
XGameInviteRegisterForEvent et XGameInviteUnregisterForEvent sont maintenant dépréciées. Utilisez plutôt XGameActivationRegisterForEvent et XGameActivationUnregisterForEvent. Pour obtenir des conseils de migration, consultez XGameActivation.C plat
inviteUri transmis à la méthode de gestionnaire OnActivation() de l’exemple de code ci-dessus depuis le rappel XGameActivationRegisterForEvent. Le titre doit ensuite attendre la notification RegisterAppStateChangeNotification, qui signale que le jeu a entièrement repris, avant d’agir sur la session à l’aide des détails fournis dans l’inviteUri.
Pour plus d’informations sur RegisterAppStateChangeNotification, consultez Cycle de vie des jeux XBOX (rubrique sous NDA).
Analyse de l’inviteUri à partir de XGameActivationCallback
Lorsque votre jeu reçoit l’événement XGameActivationCallback avec le type d’activationAcceptedGameInvite, vous pouvez accéder à la chaîne inviteUri à partir de la structure XGameActivationInfo. L’inviteUri présente l’un des formats suivants.
Pour l’acceptation d’une invitation de jeu
Lorsque l’utilisateur accepte une invitation de jeu, le jeu reçoit le rappel d’invitation de jeu avec uninviteUri, comme indiqué dans le code suivant.
inviteHandleAcceptindique que le rappel a été déclenché parce que l’utilisateur a accepté une invitation de jeu.handleest le handle d’invitation que vous utilisez pour rejoindre la session multijoueur.invitedXuidest l’ID de l’utilisateur des services XBOX invité à la session multijoueur.senderXuidest l’ID de l’utilisateur des services XBOX qui a envoyé l’invitation de jeu.contextest le contexte supplémentaire (facultatif) que l’expéditeur a pu inclure.
Pour rejoindre une session de jeu en cours
Lorsque l’utilisateur tente de rejoindre une session multijoueur, le jeu reçoit un rappel d’invitation avec uninviteUri, comme indiqué dans le code suivant.
activityHandleJoinindique que le rappel a été déclenché parce que l’utilisateur a accepté une invitation de jeu.handleest le handle d’activité que vous utilisez pour rejoindre la session multijoueur.joinerXuidest l’ID de l’utilisateur des services XBOX qui tente de rejoindre la session multijoueur.joineeXuidest l’ID de l’utilisateur des services XBOX qui se trouve actuellement dans la session multijoueur.
Rejoindre une session de jeu multijoueur avec handleId
Utilisation de Multiplayer Manager
Si vous utilisez Multiplayer Manager, vous pouvez intégrer l’utilisateur à la session multijoueur à l’aide de l’API XblMultiplayerManagerJoinLobby en lui transmettant lehandleId extrait de l’inviteUri. Vous pouvez également utiliser le xblUserHandle correspondant à l’invitedXuid, comme indiqué dans le code suivant.
C plat
Utilisation directe de l’API Multijoueur
Si vous utilisez l’API Multijoueur, procédez comme suit pour configurer les sessions multijoueurs et les invitations de votre titre.- Récupérez le document de session multijoueur à l’aide de l’API XblMultiplayerGetSessionByHandleAsync en lui transmettant le
handleId. - Ajoutez l’utilisateur local au document de session multijoueur à l’aide de l’API XblMultiplayerSessionJoin.
- Écrivez le document de session multijoueur dans le service pour valider cette modification à l’aide de l’API XblMultiplayerWriteSessionByHandleAsync.
