! Criar um controle de jogo de hardware (gamepad.connect)
Esta função está disponível somente a partir da versão 20260805.
Declaração
objeto_do_controle, mensagem_de_erro = gamepad.connect([ propriedades ])
Parâmetro
- propriedades Tabela, opcional: define as propriedades comuns do dispositivo abaixo; os valores no bloco de código são os padrões quando omitidos
{
VendorID = 0x5858,
ProductID = 0x0007,
VersionNumber = 1,
Product = "XXTouch Gamepad",
Manufacturer = "XXTouch",
Transport = "USB",
}
Também é possível definir SerialNumber e LocationID; não há garantia de que outras propriedades terão efeito.
Valores de retorno
- objeto do controle Objeto de controle de jogo ou nil: retorna um novo objeto quando o dispositivo é criado com sucesso; em caso de falha, retorna nil
- mensagem de erro Texto: mensagem de erro quando a criação do dispositivo falha
Descrição
- Cada chamada retorna um novo objeto de controle independente; os estados de entrada e o ciclo de vida de objetos diferentes não se afetam.
- O controle é compatível com os sticks esquerdo e direito, o direcional, os botões numéricos
1a32e a entradamenu. - A espera pela conexão cede a thread de execução Lua atual.
- Quando o sistema não é compatível com esta função,
gamepad.connectretornanil, error. - Uma conexão bem-sucedida indica apenas que o objeto de controle pode ser usado; o reconhecimento do controle e de todas as suas entradas pelo app de destino depende da versão do sistema e do suporte do app a controles.
Transportafeta somente a forma como o sistema local identifica o controle. Defini-lo como"Bluetooth"ou"BluetoothLowEnergy"não estabelece conexão, transmissão ou pareamento Bluetooth, nem faz o controle aparecer na lista Bluetooth de outros dispositivos.
Exemplo
local pad, err = gamepad.connect({
Product = "XXTouch Gamepad",
})
assert(pad, err)
assert(pad:press("a"))
assert(pad:press("menu"))
assert(pad:down("left_shoulder"))
assert(pad:set_stick("left", 0.5, 1))
assert(pad:set_dpad(1, 0))
assert(pad:up("left_shoulder"))
assert(pad:reset())
pad:disconnect()