Python输入模块检测gamepad操纵杆的轴是否宽大?

2024-04-26 09:49:26 发布

您现在位置:Python中文网/ 问答频道 /正文

为了简化这个问题,假设我只想检测我的gamepad的右拇指是被向上推(但不是水平的,在一定的宽限范围内)、向右推(但不是向上的,在一定的宽限范围内)还是向左推(但不是向上的,在一定的宽限范围内)。你知道吗

不幸的是,宽大处理是必要的,但我还没有找到办法。Thusfar我一直在使用输入库: 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!")

它一直工作,直到一个人移动棍子,例如,向上,然后再稍微向左或向右,然后它会检测到,而不是。你知道吗

问题是,按照输入的工作方式,events总是空的,或者大小为1。所以它要么检测到水平运动,要么检测到垂直运动,一个会覆盖另一个。你知道吗

有办法解决这个问题吗?我也愿意用另一个库来重建它,但找不到其他库。我使用的是使用DS4工具的dualshock 4控制器。你知道吗

任何帮助或建议都将不胜感激。非常感谢。你知道吗


Tags: therighteventgetif水平codeevents