본문으로 건너뛰기

! 하드웨어 게임패드 생성 (gamepad.connect)

이 함수는 20260805 이후 버전에서 사용할 수 있습니다

선언

게임패드 객체, 오류 정보 = gamepad.connect([ 속성 ])

매개변수

  • 속성 테이블, 선택 사항. 아래의 자주 사용하는 기기 속성을 설정합니다. 코드 블록의 값은 생략했을 때의 기본값입니다.
{
VendorID = 0x5858,
ProductID = 0x0007,
VersionNumber = 1,
Product = "XXTouch Gamepad",
Manufacturer = "XXTouch",
Transport = "USB",
}

SerialNumberLocationID도 설정할 수 있습니다. 그 밖의 속성은 적용을 보장하지 않습니다.

반환값

  • 게임패드 객체 게임패드 객체 또는 nil. 기기 생성에 성공하면 새 게임패드 객체를, 실패하면 nil을 반환합니다.
  • 오류 정보 문자열. 기기 생성에 실패했을 때의 오류 정보입니다.

설명

  • 호출할 때마다 새로운 독립 게임패드 객체를 반환합니다. 서로 다른 객체의 입력 상태와 수명 주기는 서로 영향을 주지 않습니다.
  • 게임패드는 왼쪽 및 오른쪽 스틱, 방향 패드, 숫자 버튼 1 ~ 32, menu 입력을 지원합니다.
  • 연결을 기다리는 동안 현재 Lua 실행 스레드의 제어권을 양보합니다.
  • 시스템에서 이 기능을 지원하지 않으면 gamepad.connectnil, 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()