这个文档记录了在Ubuntu 18.04 平台上如何使用python获取Nintendo Switch Pro 手柄的各个按键与遥感的值。
【注意】:
不同品牌的手柄可能在值的映射上存在差异,在程序运行后通过不断按下对应的按钮查看每个按键映射的值是什么;如果在插入USB线缆后无论怎么按键都没有输出可能是因为没有进行配对,同时按下 ”L“ 和 "R" 建后完成自动配对;将手柄连接后使用下面的命令查看有哪些序号:
$ ls /dev/input | grep js
然后逐个尝试可用的序号直到晃动遥感后有连续的数据输出:
$ cat /dev/input/js0
下面的代码假定可用的序号为 "4":
import pygame
pygame.init()
joystick = pygame.joystick.Joystick(4) # 上面命令获取的正确序号
joystick.init()
while True:
print("-----------------")
for event in pygame.event.get():
print("Hats: ", joystick.get_hat(0)[0], joystick.get_hat(0)[1])
# 获取按钮的值
buttons_value = []
for i in range(joystick.get_numbuttons()):
buttons_value.append(joystick.get_button(i))
# 获取遥感的值
axes_value = []
for i in range(joystick.get_numaxes()):
axes_value.append(joystick.get_axis(i))
print("Buttons: ", buttons_value)
print("Axes : ", axes_value)
pygame.time.wait(100)