! ハードウェアゲームパッドを作成 (gamepad.connect)
この関数は 20260805 以降のバージョンでのみ使用できます
宣言
ゲームパッドオブジェクト, エラー情報 = gamepad.connect([ プロパティ ])
引数
- プロパティ 省略可能なテーブル型。以下の一般的なデバイスプロパティを設定します。コードブロック内の値は、省略した場合のデフォルト値です。
{
VendorID = 0x5858,
ProductID = 0x0007,
VersionNumber = 1,
Product = "XXTouch Gamepad",
Manufacturer = "XXTouch",
Transport = "USB",
}
SerialNumber と LocationID も設定できます。その他のプロパティは、有効になることが保証されません。
戻り値
- ゲームパッドオブジェクト ゲームパッドオブジェクトまたは nil。デバイスの作成に成功した場合は新しいゲームパッドオブジェクトを返し、失敗した場合は nil を返します。
- エラー情報 文字列型。デバイスの作成に失敗した場合のエラー情報です。
説明
- 呼び出すたびに、新しい独立したゲームパッドオブジェクトを返します。異なるオブジェクトの入力状態とライフサイクルは互いに影響しません。
- ゲームパッドは左右のスティック、方向パッド、数字ボタン
1から32、およびmenu入力に対応しています。 - 接続待機中は、現在の Lua 実行スレッドを明け渡します。
- システムがこの機能に対応していない場合、
gamepad.connectはnil, errorを返します。 - 接続成功は、ゲームパッドオブジェクトを呼び出せる状態になったことだけを示します。対象 App がゲームパッドとそのすべての入力を認識するかどうかは、システムバージョンと App のゲームパッド対応状況によって異なります。
Transportは、ローカルシステムがこのゲームパッドを認識する方法にのみ影響します。"Bluetooth"または"BluetoothLowEnergy"に設定しても、Bluetooth 接続、ブロードキャスト、ペアリングは行われず、他のデバイスの Bluetooth 一覧にゲームパッドが表示されることもありません。
使用例
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()