Lidar com a perda do controle
Lidar com a perda do controle
Ter um controle associado a um usuário é fundamental para a maioria dos jogos. Quando o
jogo perde todos esses controles de um usuário (por exemplo, a bateria acabou), a
abordagem padrão para um jogo de um jogador é pausá-lo e mostrar uma caixa de diálogo
pedindo que o usuário ligue um controle.
Usando a função XUserFindControllerForUserWithUiAsync,
os jogos podem melhorar essa experiência. Essa função recebe um XUserHandle
como entrada e mostra uma caixa de diálogo:
<<Gamer>>, você precisa de um controle para este jogo.
Pressione e segure A para confirmar o controle que deseja usar
Depois que o usuário confirmar o controle, o jogo poderá chamar
XUserFindControllerForUserWithUiResult
para obter o APP_LOCAL_DEVICE_ID do controle escolhido. Mais importante, esse
controle agora está associado a esse usuário. Se esse usuário pressionar o botão Nexus,
o Guia do XBOX mostrará as informações desse usuário no Guia.
Observe que o jogador pode cancelar essa caixa de diálogo sem selecionar um controle, e o título deve lidar com esse cancelamento adequadamente. Por exemplo, um título pode chamar repetidamente XUserFindControllerForUserWithUiAsync para forçar uma seleção, ou pode retornar à tela de título, já que não há mais um mapeamento de usuário/controle, ou adotar algum outro comportamento que faça sentido para o título.
Observe também que, com esse processo, os usuários podem ser associados a controles que estavam associados anteriormente a outros usuários no jogo. Isso ocorre por design.
Sempre que a associação entre um usuário e um controle mudar, haverá um
XUserDeviceAssociationChangedCallback.
Observação: esse evento também será disparado com o emparelhamento bem-sucedido de usuário e controle
resultante da chamada de
XUserFindControllerForUserWithUiAsync.
Last modified on October 6, 2026
