Requisito previo
Para recibir notificaciones de invitaciones a partidas en un equipo Windows, instale la XBOX Game Bar. La aplicación XBOX Game Bar está instalada de forma predeterminada en Windows 10, versión de SO 1903 o posterior. Seleccione la tecla Windows+G para iniciar la aplicación XBOX Game Bar y comprobar que está instalada correctamente.Si XBOX Game Bar no está instalada en su equipo Windows, puede instalarla desde el Microsoft Store.
Registro del protocolo multijugador
El registro del protocolo multijugador indica al sistema cómo iniciar su juego cuando el usuario acepta una invitación a una partida multijugador. Para registrar el protocolo multijugador, debe agregar un elementoMultiplayerProtocol a su archivo MicrosoftGame.config como se muestra en el código siguiente.
Executable como se muestra en el código siguiente.
Registro de las devoluciones de llamada de invitaciones a partidas multijugador
Las API
XGameInviteRegisterForEvent y XGameInviteUnregisterForEvent están ahora en desuso. Use XGameActivationRegisterForEvent y XGameActivationUnregisterForEvent en su lugar. Para obtener guía de migración, consulte XGameActivation.Flat C
inviteUri que se pasa al método controlador OnActivation() del código de ejemplo anterior desde la devolución de llamada de XGameActivationRegisterForEvent. A continuación, el título debe esperar a RegisterAppStateChangeNotification, que notifica cuándo el juego se ha reanudado por completo, antes de que el título proceda a operar sobre la sesión mediante los detalles que se proporcionan en el inviteUri.
Para obtener más información sobre RegisterAppStateChangeNotification, consulte Ciclo de vida del juego de XBOX (tema con NDA).
Análisis de inviteUri desde XGameActivationCallback
Cuando su juego recibe el evento XGameActivationCallback con un tipo de activación deAcceptedGameInvite, puede acceder a la cadena inviteUri de la estructura XGameActivationInfo. El inviteUri tiene uno de los formatos siguientes.
Para aceptar una invitación a una partida
Cuando el usuario acepta una invitación a una partida, el juego recibe la devolución de llamada de invitación a la partida con uninviteUri como se muestra en el código siguiente.
inviteHandleAcceptindica que la devolución de llamada se inició porque el usuario aceptó una invitación a una partida.handlees el identificador de invitación que se usa para unirse a la sesión multijugador.invitedXuides el identificador del usuario de los servicios de XBOX que está invitado a la sesión multijugador.senderXuides el identificador del usuario de los servicios de XBOX que envió la invitación a la partida.contextes el contexto adicional (opcional) que el remitente puede haber incluido.
Para unirse a una sesión de juego en curso
Cuando el usuario intenta unirse a una sesión multijugador, el juego recibiría una devolución de llamada de invitación con uninviteUri como se muestra en el código siguiente.
activityHandleJoinindica que la devolución de llamada se inició porque el usuario aceptó una invitación a una partida.handlees el identificador de actividad que se usa para unirse a la sesión multijugador.joinerXuides el identificador del usuario de los servicios de XBOX que está intentando unirse a la sesión multijugador.joineeXuides el identificador del usuario de los servicios de XBOX que está actualmente en la sesión multijugador.
Unirse a una sesión de juego multijugador con handleId
Uso de Multiplayer Manager
Si usa Multiplayer Manager, puede unir al usuario a la sesión multijugador mediante la API XblMultiplayerManagerJoinLobby, pasando elhandleId extraído del inviteUri. También puede usar el xblUserHandle para el invitedXuid, como se muestra en el código siguiente.
Flat C
Uso directo de la Multiplayer API
Si usa la Multiplayer API, siga estos pasos para configurar las sesiones multijugador y las invitaciones de su título.- Recupere el documento de sesión multijugador mediante la API XblMultiplayerGetSessionByHandleAsync y pásele el
handleId. - Una al usuario local al documento de sesión multijugador mediante la API XblMultiplayerSessionJoin.
- Escriba el documento de sesión multijugador en el servicio para confirmar este cambio mediante la API XblMultiplayerWriteSessionByHandleAsync.
