Python 如何在XBOX One控制器上拆分触发器?
我希望能够独立检测触发器拉力,但触发器似乎共享一个轴 我在MSDN文档中没有看到Xbox One控制器上的任何内容,但对于Xbox 360控制器,DirectInput触发器共享轴,XInput为每个触发器提供单独的轴。这表明pygame使用的是DirectInput而不是Xinput,但我不知道如何强制pygame使用Xinput (如何)我可以强制pygame使用xinput而不是直接输入? 如果这真的不可行,我愿意使用另一种语言 我正在使用此脚本从控制器读取输入:Python 如何在XBOX One控制器上拆分触发器?,python,pygame,xbox-one,Python,Pygame,Xbox One,我希望能够独立检测触发器拉力,但触发器似乎共享一个轴 我在MSDN文档中没有看到Xbox One控制器上的任何内容,但对于Xbox 360控制器,DirectInput触发器共享轴,XInput为每个触发器提供单独的轴。这表明pygame使用的是DirectInput而不是Xinput,但我不知道如何强制pygame使用Xinput (如何)我可以强制pygame使用xinput而不是直接输入? 如果这真的不可行,我愿意使用另一种语言 我正在使用此脚本从控制器读取输入: import pygam
import pygame
pygame.init()
screen = pygame.display.set_mode((400,400))
joysticks = []
for i in range(0, pygame.joystick.get_count()):
joysticks.append(pygame.joystick.Joystick(i))
joysticks[-1].init()
while True:
for event in pygame.event.get():
print event
编辑:我现在没有时间完整地写出来,但与此同时,我发现这段代码似乎适合我(在Xbox One Spectra controller上):首先:
发件人:
自2011年起,XInput
用于xbox360
控制器,而DirectInput
用于任何控制器
第二:
Pygame是一个SDL绑定
因此pygame
可以拥有XInput
支持,如果SDL
拥有。遗憾的是,SDL
没有。
原因是我以前写的,DirectInput
更受欢迎。
另外,请查看:
如果愿意,您仍然可以围绕xinputapi
编写包装器
编辑:
您链接的回购使用ctypes围绕XInput API创建包装。感谢您的帮助!