Я разрабатываю приложение, которое использует pygame для чтения аналоговых значений триггера с геймпада в стиле XBox 360.Это приложение полагается на то, что триггеры инициализируются в нейтральной позиции, или же это приводит к неопределенному поведению.
Проблема: аналоговые триггеры интерпретируются как оси в пигаме, и те инициализируются равными 0, пока не получат первого пользователявход.Но нейтральное положение (триггеры не нажаты) триггеров отображается на -1.0.
Так что, пока я не нажму оба триггера, полученный мной сигнал «наполовину нажат» для обоих триггеров, хотя яничего не нажимаю.
Есть ли способ указать начальное состояние объекта джойстика?Я уже пытался определить пользовательское событие JOYAXISMOTION
, которое не помогло.
Пример минимального кода:
import pygame
import time
pygame.joystick.init()
if pygame.joystick.get_count() <= 0:
print("No joystick or gamepad found")
exit()
device = pygame.joystick.Joystick(0)
device.init()
print(device.get_numaxes())
while True:
pygame.event.get()
# here, it prints 0.0, 0.0 when not touching the triggers,
# until I press them
print("Left trigger: {}\t Right trigger: {}".format(device.get_axis(2), # left trigger
device.get_axis(5))) # right trigger
time.sleep(0.1)