! Créer une manette de jeu matérielle (gamepad.connect)
Cette fonction est disponible à partir des versions postérieures au 20260805
Déclaration
objet_manette, message_erreur = gamepad.connect([ proprietes ])
Paramètres
- proprietes type table, paramètre facultatif servant à définir les propriétés courantes de l’appareil ci-dessous ; les valeurs du bloc de code sont les valeurs par défaut lorsqu’elles sont omises
{
VendorID = 0x5858,
ProductID = 0x0007,
VersionNumber = 1,
Product = "XXTouch Gamepad",
Manufacturer = "XXTouch",
Transport = "USB",
}
Vous pouvez également définir SerialNumber et LocationID ; l’effet des autres propriétés n’est pas garanti.
Valeur renvoyée
- objet_manette objet de manette de jeu ou nil, renvoie un nouvel objet lorsque l’appareil est créé, et nil en cas d’échec
- message_erreur type texte, message d’erreur lorsque la création de l’appareil échoue
Description
- Chaque appel renvoie un nouvel objet de manette indépendant ; l’état des entrées et le cycle de vie de chaque objet sont indépendants
- La manette prend en charge les joysticks gauche et droit, la croix directionnelle, les touches numériques
1à32ainsi que l’entréemenu - L’attente de la connexion cède le thread d’exécution Lua actuel
- Si le système ne prend pas cette fonction en charge,
gamepad.connectrenvoienil, error - Une connexion réussie signifie uniquement que l’objet de manette peut être utilisé ; la reconnaissance de la manette et de toutes ses entrées par l’application cible dépend de la version du système et de la prise en charge des manettes par l’application
Transportne modifie que la manière dont le système local identifie la manette. La valeur"Bluetooth"ou"BluetoothLowEnergy"n’établit aucune connexion Bluetooth, diffusion ou association, et ne fait pas apparaître la manette dans la liste Bluetooth des autres appareils
Exemple
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()