跳至主要內容

! 建立硬體遊戲手柄 (gamepad.connect)

該函式在 20260805 以後版本方可使用

聲明

手柄物件, 錯誤資訊 = gamepad.connect([ 屬性 ])

參數

  • 屬性 表型,可選參數,用於設定下列常用裝置屬性;代碼塊中的值為省略時的預設值
{
VendorID = 0x5858,
ProductID = 0x0007,
VersionNumber = 1,
Product = "XXTouch Gamepad",
Manufacturer = "XXTouch",
Transport = "USB",
}

還可以設定 SerialNumberLocationID;其它屬性不保證生效。

回傳值

  • 手柄物件 遊戲手柄物件 或 nil,裝置建立成功時返回新的手柄物件,失敗時返回 nil
  • 錯誤資訊 文字型,裝置建立失敗時的錯誤資訊

說明

  • 每次呼叫都會返回新的獨立手柄物件;不同物件的輸入狀態和生命週期互不影響
  • 手柄支援左右搖桿、方向鍵、數字按鍵 132,以及 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()