跳到主要内容

按下手柄按键 (:down)

该方法在 20260805 以后版本方可使用

声明​

状态, 错误信息 = 手柄对象:down(按键)

参数​

  • 按键
    整数型 或 文本型,可传入 1 至 32 的整数、下表中的按键名称,或 "start"、"menu";字符串不区分大小写
编号按键名称别名
1a-
2b-
3x-
4y-
5left_shoulderleft_bumper、lb、l1
6right_shoulderright_bumper、rb、r1
7left_triggerlt、l2
8right_triggerrt、r2
9left_stickl3
10right_stickr3
11l4left_paddle
12r4right_paddle
13m1-
14m2-
15m3-
16m4-

返回值​

  • 状态
    布尔型,操作成功返回 true,设备断开、忙或输入发送失败返回 false
  • 错误信息
    文本型,操作失败时的错误信息

说明​

  • 数字 1 至 32 表示数字按键,不是跨设备统一的游戏按键码;通常应优先使用上表中的按键名称
  • 数字 17 至 32 没有预定义名称,只有目标 App 支持相应扩展按键时才会产生效果
  • "start" 和 "menu" 是同一个菜单输入的别名,不对应 1 至 32 中的某个数字
  • select、back、options、home、share 和触摸板按键名称暂不支持
  • left_trigger 和 right_trigger 只支持按下或松开,不支持模拟压力值;menu 不会触发系统主屏幕动作
  • 参数类型错误、未知名称和越界值会作为 Lua 参数错误抛出,而不是返回 false, error

示例​

local pad = assert(gamepad.connect())

assert(pad:down("left_shoulder"))
assert(pad:up("left_shoulder"))
assert(pad:down(13)) -- 数字按键 13
assert(pad:up(13))
assert(pad:disconnect())