Я хотел бы иметь возможность обнаруживать нажатие триггера независимо, но триггеры, похоже, имеют одну ось.
Я ничего не видел о контроллерах Xbox One в документах MSDN, но для контроллеров Xbox 360 триггеры DirectInput делят ось, а XInput дает отдельные оси каждому триггеру. Это говорит о том, что pygame использует DirectInput, а не Xinput, но я не знаю, как заставить pygame использовать вместо этого Xinput.
(Как) я могу заставить pygame использовать xinput вместо прямого ввода? Если это невозможно, я бы хотел использовать другой язык.
Я использую этот скрипт для чтения ввода с контроллера:
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
EDIT: в данный момент у меня нет времени, чтобы написать это полностью, но тем временем я нашел этот код, который работает для меня (на контроллере Xbox One Spectra): https://github.com/r4dian/Xbox-360-Controller-for-Python