! Hardware-Gamepad erstellen (gamepad.connect)
Diese Funktion ist erst in Versionen nach 20260805 verfügbar.
Deklaration
Gamepad-Objekt, Fehlermeldung = gamepad.connect([ Eigenschaften ])
Parameter
- Eigenschaften Tabellenwert, optional; legt die folgenden häufig verwendeten Geräteeigenschaften fest. Die Werte im Codeblock sind die Standardwerte, wenn sie weggelassen werden.
{
VendorID = 0x5858,
ProductID = 0x0007,
VersionNumber = 1,
Product = "XXTouch Gamepad",
Manufacturer = "XXTouch",
Transport = "USB",
}
Zusätzlich können SerialNumber und LocationID festgelegt werden; bei anderen Eigenschaften wird die Wirksamkeit nicht garantiert.
Rückgabewert
- Gamepad-Objekt Gamepad-Objekt oder nil. Bei erfolgreicher Geräteerstellung wird ein neues Gamepad-Objekt, bei einem Fehler nil zurückgegeben.
- Fehlermeldung Textwert; Fehlermeldung bei fehlgeschlagener Geräteerstellung.
Beschreibung
- Jeder Aufruf gibt ein neues unabhängiges Gamepad-Objekt zurück; Eingabestatus und Lebensdauer verschiedener Objekte sind voneinander unabhängig.
- Das Gamepad unterstützt den linken und rechten Stick, das Steuerkreuz, die Zifferntasten
1bis32sowie die Eingabemenu. - Während des Verbindungsaufbaus gibt die Funktion den aktuellen Lua-Ausführungsthread frei.
- Wenn das System diese Funktion nicht unterstützt, gibt
gamepad.connectnil, errorzurück. - Eine erfolgreiche Verbindung bedeutet nur, dass das Gamepad-Objekt aufgerufen werden kann. Ob die Ziel-App das Gamepad und alle seine Eingaben erkennt, hängt von der Systemversion und der Gamepad-Unterstützung der App ab.
Transportbeeinflusst nur, wie das lokale System das Gamepad erkennt. Die Einstellung auf"Bluetooth"oder"BluetoothLowEnergy"stellt keine Bluetooth-Verbindung her, sendet keine Übertragung und führt kein Pairing durch; das Gamepad erscheint dadurch auch nicht in der Bluetooth-Liste anderer Geräte.
Beispiel
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()