Chuyển tới nội dung chính

! Tạo tay cầm chơi game phần cứng (gamepad.connect)

Hàm này chỉ khả dụng trên các phiên bản sau 20260805

Khai báo

pad, err = gamepad.connect([properties])

Tham số

  • properties Kiểu bảng, không bắt buộc. Dùng để đặt các thuộc tính thiết bị thường dùng dưới đây; khi bỏ qua, các giá trị hiển thị trong khối mã sẽ được dùng làm mặc định.
{
VendorID = 0x5858,
ProductID = 0x0007,
VersionNumber = 1,
Product = "XXTouch Gamepad",
Manufacturer = "XXTouch",
Transport = "USB",
}

Bạn cũng có thể đặt SerialNumberLocationID. Không bảo đảm các thuộc tính khác sẽ có hiệu lực.

Giá trị trả về

  • pad Đối tượng tay cầm hoặc nil. Trả về đối tượng tay cầm mới khi thành công; trả về nil nếu không thể tạo thiết bị.
  • err Kiểu chuỗi. Thông báo lỗi khi không thể tạo thiết bị.

Mô tả

  • Mỗi lần gọi sẽ trả về một đối tượng tay cầm độc lập mới. Trạng thái đầu vào và vòng đời của các đối tượng không ảnh hưởng lẫn nhau.
  • Tay cầm hỗ trợ cần analog trái và phải, phím định hướng, các nút số từ 1 đến 32 và đầu vào menu.
  • Trong khi chờ kết nối, hàm sẽ nhường quyền thực thi của luồng Lua hiện tại.
  • Trên hệ thống không hỗ trợ tính năng này, gamepad.connect trả về nil, error.
  • Kết nối thành công chỉ có nghĩa là đối tượng tay cầm đã sẵn sàng để gọi. Việc ứng dụng đích có nhận diện tay cầm và toàn bộ đầu vào hay không phụ thuộc vào phiên bản hệ thống và khả năng hỗ trợ tay cầm của ứng dụng.
  • Transport chỉ ảnh hưởng đến cách hệ thống cục bộ nhận diện tay cầm. Đặt thành "Bluetooth" hoặc "BluetoothLowEnergy" không tạo kết nối Bluetooth, không quảng bá hay ghép đôi thiết bị và cũng không làm tay cầm xuất hiện trong danh sách Bluetooth của thiết bị khác.

Ví dụ

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()