2017-04-14 73 views
0

我一直在搜寻几天的论坛试图找到一种方法来从XInput控制器嗅探XInput。我还没有找到任何方法来检测按钮是否被按下,大多数论坛帖子都是关于模拟棒。我也希望在没有PyGame或庞大的外部模块的情况下实现我的目标。我需要做的就是检测控制器上按下A,B,RB(右保险杠)和D-Pad按钮并按下时,运行一些代码。我希望能够区分哪个按钮被按下,而不仅仅是一个按钮被按下的事实,因为我需要将这些输入转换成VK代码,以便为特定游戏添加控制器支持(我知道已经有应用程序出现在这里,但我想要制作一个单一脚本并且体积较小)如何在Python中使用XInput()WITHOUT PYGAME)来嗅探控制器上的按钮?

另外,如果在Python之外的其他语言中使用起来更容易,请继续解释。我只用Python说,因为我比其他人更了解这门语言。另外,我没有太多的编码经验,记住这一点。

+0

你看过[python-xlib](https://github.com/python-xlib/python-xlib)模块吗? – Felix

+0

@Felix我刚刚查看了一下,并在互联网上搜索了一下,但不知道如何使用它来检测Xbox按钮。另外,我希望能够将它制作成一个没有外部模块的脚本,因为我确定它不应该花费太多的代码来检测XInput按钮,如果它已经有一个Windows内置的API –

+0

哦,请忘记我推荐的东西之前。 Windows和Linux中有XInput,我认为你在谈论Linux。 Xlib将无法使用Windows – Felix

回答

2

看看这个Github上回购:

https://github.com/r4dian/Xbox-360-Controller-for-Python

它似乎包含正是你想要的。我认为使用这个库是使控制器使用python最简单的方法。

+0

几分钟后修复我的点安装,所以我可以下载所需的软件包,它的工作原理!非常感谢! –

+0

代码很好,但事件很痛苦,因为你不能访问你正在运行它的循环中的东西。自己写了一个快速包装来修复它,不妨分享一下,以防其他人有相同的问题 - https://pastebin.com/8KDYbpaj – Peter