Pular para o conteúdo principal

Simular entrada de gamepad

Ao testar um título do XBOX One, nem sempre é eficiente ter uma pessoa usando um gamepad físico para interagir com o console de desenvolvimento. Você pode automatizar testes de unidade, testes de estresse, testes de longa duração e testes de usuário simulando programaticamente a entrada de gamepad usando o XBOX Tools Framework (XTF) e o XBOX Test Toolkit em um computador. É possível simular a entrada de gamepad em vários consoles ao mesmo tempo para testar cenários multijogador online. Para simular a entrada de gamepad, adicione XtfInput.lib em Configuration Properties > Linker > Input > Additional Dependencies e inclua XtfInput.h nos arquivos de origem do seu ambiente de teste ou ferramenta autônoma.
  • XtfInput.lib está localizado em <GDK Install Path>\toolKit\lib\amd64
  • XtfInput.h está localizado em <GDK Install Path>\toolKit\include
Os aplicativos Xtf não podem ter como destino sistemas de 32 bits. Você deve garantir que suas opções de build tenham como destino um sistema de 64 bits. Use as etapas a seguir para configurar seu projeto para ter como destino 64 bits.
  1. Abra o menu BUILD na barra de contexto superior e selecione Configuration Manager.
  2. Selecione a lista suspensa Active solution platform: (que provavelmente está definida como Win32) e selecione <New..>.
  3. Selecione a lista suspensa Type or select the new platform: e selecione x64. Copie as configurações da sua configuração preferida (provavelmente Win32).
  4. Selecione OK para adicionar a nova configuração.

Para simular a entrada de gamepad

  1. Chame XtfCreateInputClient, especificando o endereço do console de destino, para criar uma instância de IXtfInputClient.
  2. Chame IXtfInputClient::ConnectGamepad para criar um controle virtual.
  3. Defina uma estrutura GAMEPAD_REPORT para conter o estado do gamepad desejado. Por exemplo, para simular o pressionamento do botão A, você usaria gamepadReport.Buttons = A;.
  4. Chame IXtfInputClient::SendGamepadReport com a ID do controle retornada por ConnectGamepad e o GAMEPAD_REPORT da etapa anterior.
  5. Aguarde pelo menos 16 ms e chame IXtfInputClient::SendGamepadReport novamente para redefinir o estado do controle, se necessário. Por exemplo, para simular a liberação do botão A, você usaria gamepadReport.Buttons = NONE.
  6. Repita as etapas 3 a 5 para enviar pressionamentos de botão adicionais.
  7. Chame DisconnectGamepad quando terminar para garantir que os recursos alocados para o controle virtual sejam liberados.
O exemplo de código a seguir demonstra como simular programaticamente a entrada do controle. C++

Confira também

Referência
Última modificação em 6 de outubro de 2026