为简化此问题,假设我只是希望能够检测到我的游戏板的右指尖是否被向上推(但在水平范围内不是水平推拉),向右推(但在一定范围内不是向上推)或被推到左侧(但在宽大的范围内不能向上推)。
不幸的是,需要宽大处理,但是我还没有找到一种方法。到目前为止,我一直在使用输入库: 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控制器。
任何帮助或建议将不胜感激。谢谢。