! 建立硬體遊戲手柄 (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"不會建立藍牙連接、廣播或配對,也不會讓手柄出現在其它裝置的藍牙清單中
範例
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()