Teste de Controle e Stick Drift
O teste mostra os botões, eixos e valores de gatilho expostos pela Gamepad API e tenta acionar vibração quando o navegador e o controle oferecem um atuador compatível.
Abrir ferramenta em tela cheia →Como usar
- Conecte o controle por cabo ou Bluetooth e aperte qualquer botão: por privacidade, o navegador só revela o dispositivo depois de uma interação.
- Aperte cada botão e gatilho observando o painel; gatilhos analógicos mostram o valor intermediário durante o curso.
- Solte completamente os analógicos e leia o campo de drift em repouso, que deve ficar próximo de zero.
Quando usar
- Observar desvio dos eixos em repouso antes de comparar em jogos ou outro dispositivo.
- Conferir quais botões e gatilhos a API expõe para um controle usado.
- Comparar curso e centro reportados em diferentes movimentos.
- Tentar a vibração sem abrir um jogo, quando a API oferecer suporte.
Limitações
A Gamepad API padroniza o mapeamento em um layout genérico. Controles exóticos podem reportar botões fora de ordem, e a vibração só funciona onde o navegador implementa o atuador dual-rumble.
Perguntas Frequentes
- Qual valor de drift já é problema?
- Não existe um limiar universal no navegador. Os marcadores 0,05 e 0,08 são referências de triagem; jogos aplicam zonas mortas diferentes. Compare em repouso e no uso real.
- Meu controle não aparece na lista. O que fazer?
- Aperte um botão do controle com esta página em foco. Navegadores só expõem o dispositivo depois de uma interação do usuário, justamente para evitar identificação silenciosa de hardware.
Metodologia Técnica e Ciência dos Painéis
A leitura chama navigator.getGamepads() a cada quadro via requestAnimationFrame, conforme o modelo de polling definido pela especificação W3C Gamepad. Cada objeto devolve o array buttons, com estado booleano e valor analógico de 0 a 1, e o array axes normalizado entre -1 e 1.
O desvio é calculado como o maior valor absoluto entre os eixos reportados. Mapeamento, calibração, sensor e posição dos controles variam; o número não identifica a tecnologia nem a causa.
A vibração tenta usar `vibrationActuator.playEffect` com `dual-rumble`. Suporte, mapeamento e efeito efetivo dependem do navegador, sistema e controle.