Zum Hauptinhalt springen

! 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 1 bis 32 sowie die Eingabe menu.
  • Während des Verbindungsaufbaus gibt die Funktion den aktuellen Lua-Ausführungsthread frei.
  • Wenn das System diese Funktion nicht unterstützt, gibt gamepad.connect nil, error zurü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.
  • Transport beeinflusst 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()