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, adicioneXtfInput.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.libestá localizado em<GDK Install Path>\toolKit\lib\amd64XtfInput.hestá 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.
- Abra o menu BUILD na barra de contexto superior e selecione Configuration Manager.
- Selecione a lista suspensa Active solution platform: (que provavelmente está definida como Win32) e selecione <New..>.
- Selecione a lista suspensa Type or select the new platform: e selecione x64. Copie as configurações da sua configuração preferida (provavelmente Win32).
- Selecione OK para adicionar a nova configuração.
Para simular a entrada de gamepad
- Chame XtfCreateInputClient, especificando o endereço do console de destino, para criar uma instância de IXtfInputClient.
- Chame IXtfInputClient::ConnectGamepad para criar um controle virtual.
- 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;. - Chame IXtfInputClient::SendGamepadReport com a ID do controle retornada por ConnectGamepad e o GAMEPAD_REPORT da etapa anterior.
- 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. - Repita as etapas 3 a 5 para enviar pressionamentos de botão adicionais.
- Chame DisconnectGamepad quando terminar para garantir que os recursos alocados para o controle virtual sejam liberados.
