! Crear un mando de juego de hardware (gamepad.connect)
Disponible a partir de las versiones posteriores a 20260805
Declaración
objeto_mando, mensaje_error = gamepad.connect([ propiedades ])
Parámetros
- propiedades Tipo tabla; parámetro opcional para establecer las propiedades de dispositivo habituales siguientes; los valores del bloque de código son los predeterminados cuando se omiten
{
VendorID = 0x5858,
ProductID = 0x0007,
VersionNumber = 1,
Product = "XXTouch Gamepad",
Manufacturer = "XXTouch",
Transport = "USB",
}
También se pueden establecer SerialNumber y LocationID; no se garantiza que las demás propiedades surtan efecto.
Valores devueltos
- objeto_mando Objeto de mando de juego o nil; devuelve un nuevo objeto de mando si el dispositivo se crea correctamente y nil si falla
- mensaje_error Tipo texto; mensaje de error cuando falla la creación del dispositivo
Descripción
- Cada llamada devuelve un nuevo objeto de mando independiente; los estados de entrada y los ciclos de vida de los distintos objetos no se afectan entre sí
- El mando admite los joysticks izquierdo y derecho, la cruceta, los botones numéricos
1a32y la entradamenu - La espera de la conexión cede el hilo de ejecución Lua actual
- Si el sistema no admite esta función,
gamepad.connectdevuelvenil, error - Una conexión correcta solo indica que ya se puede llamar al objeto de mando; que la aplicación objetivo reconozca el mando y todas sus entradas depende de la versión del sistema y de la compatibilidad de la aplicación con mandos
Transportsolo afecta a cómo el sistema local identifica el mando. Establecerlo en"Bluetooth"o"BluetoothLowEnergy"no establece una conexión Bluetooth, ni difunde ni empareja el dispositivo, ni hace que el mando aparezca en la lista Bluetooth de otros dispositivos
Ejemplo
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()