! 创建硬件游戏手柄 (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()