Модуль Python Inputs - обнаружить ось игрового джойстика с снисходительностью? - PullRequest
0 голосов
/ 09 марта 2019

Чтобы упростить эту проблему, скажем, я просто хочу иметь возможность определить, толкается ли правый большой палец моего геймпада вверх (но не горизонтально, в пределах некоторого снисхождения), толкается вправо (но не вверх, в пределах некоторого снисхождения)или толкнуть влево (но не вверх, в некоторой степени снисходительности).

К сожалению, снисходительность необходима, но я пока не нашел способа сделать это.Таким образом, если бы я использовал библиотеку входных данных: https://pypi.org/project/inputs/ Но она не очень хорошо документирована и, насколько я могу судить, не позволяет вам сравнивать точный угол наклона пальца в любой момент времени.

Используя их собственный пример кода, у меня есть следующий фрагмент функции:

def get_true_game_input():
    inputArray = [0,0,0,0,0,0,0,0,0,0,0,0,0,0]
    # All the different buttons that are important to be detected, including whether the thumbstick has been moved left, right, or up
    events = get_gamepad()
    for event in events:
      if event.code == "ABS_RY":
        if event.state >= 8000:
            print("top Guard!")
            inputArray[5] = 1
      elif event.code == "ABS_RX":
        if event.state >= 8000:
            inputArray[6] = 1
            print("right guard!")
      elif event.state <= -8000:
            inputArray[4] = 1
            print("left guard!")

, которая работает до тех пор, пока кто-то не переместит палку, например, вверх, а затем немного влево или вправо, после чегоон обнаружит это вместо этого.

Проблема в том, что при способе, по которому работает Inputs, events всегда либо пуст, либо имеет размер 1. Таким образом, он будет обнаруживать горизонтальное или вертикальное движение.и один перезапишет другой.

Есть ли способ решить эту проблему?Я также открыт для восстановления этого с использованием другой библиотеки, но не могу найти другую.Я использую контроллер dualshock 4 с использованием инструмента DS4.

Буду признателен за любую помощь или совет.Спасибо.

...