一个pythonic xbox360控制器api构建在xpad linux内核驱动程序之上。

xbox360controller的Python项目详细描述


Xbox360控制器

A pythonic Xbox360 controller API built on top of the xpad Linux kernel driver.

PyPI VersionBuild StatusCode Health

这个python包旨在为您的xbox360和类似的游戏控制器提供一个pythonic和完整的api。 目前它是在Linux内核驱动程序之上构建的,因此您可以在几乎任何Linux发行版上使用它,包括您的Rasperry PI项目等。

支持以下功能:

  • 以受gpiozero启发的方式为all按钮、轴、触发器和帽子注册回调
  • 设置LED圆圈;所有xpad提供的选项都是可能的:闪烁、旋转、设置单个LED的开和关,…
  • 隆隆声,左右两侧均可控制在0%到100%之间

安装

您将需要Python3.4或更高版本。

任何Linux发行版:

pip3 install -U xbox360controller

您还可以使用virtual environment或通过向上面的命令提供--user标志来执行按用户安装。 全局安装可能需要使用sudo或直接从根shell运行,但不建议使用

如果找不到pip3命令,请尝试pip或确保正确安装pip:

sudo apt install python3-pip

当然,从根shell工作时不需要sudo

用法

基础知识

importsignalfromxbox360controllerimportXbox360Controllerdefon_button_pressed(button):print('Button {0} was pressed'.format(button.name))defon_button_released(button):print('Button {0} was released'.format(button.name))defon_axis_moved(axis):print('Axis {0} moved to {1}{2}'.format(axis.name,axis.x,axis.y))try:withXbox360Controller(0,axis_threshold=0.2)ascontroller:# Button A eventscontroller.button_a.when_pressed=on_button_pressedcontroller.button_a.when_released=on_button_released# Left and right axis move eventcontroller.axis_l.when_moved=on_axis_movedcontroller.axis_r.when_moved=on_axis_movedsignal.pause()exceptKeyboardInterrupt:pass

上述代码将一直运行,直到按下Ctrl+C。每次在左或右轴上移动时,事件将被处理。另外,A按钮的事件正在处理中。

有关Xbox360Controller类以及如何使用所有可用按钮、轴和帽子的详细说明,请参见API reference

隆隆声

importtimefromxbox360controllerimportXbox360ControllerwithXbox360Controller()ascontroller:controller.set_rumble(0.5,0.5,1000)time.sleep(1)

这将使控制器两侧以每50%的强度发出一秒(1000毫秒)的隆隆声。请注意,方法调用是非阻塞的,因此我们需要手动等待1秒,等待隆隆声结束。在使用signal.pause()的常规用例中,您不需要这样做。

发光二极管

importtimefromxbox360controllerimportXbox360ControllerwithXbox360Controller()ascontroller:controller.set_led(Xbox360Controller.LED_ROTATE)time.sleep(1)controller.set_led(Xbox360Controller.LED_OFF)

这将使LED圆圈旋转一秒钟,然后将其关闭。

有关所有可用的LED模式,请参见API reference

调试信息

fromxbox360controllerimportXbox360ControllerwithXbox360Controller()ascontroller:controller.info()

开发/贡献

这个项目现在处于一个比较稳定的状态,我非常感谢各种贡献-可能是新的或改进的代码,文档或只是一个简单的排版修复。 只要给我一个公关,我会很高兴包括你的工作!

有关此软件包的功能请求、一般问题或问题,请open an issue

发布历史记录

请参阅^{}以获取完整的发布历史记录。

作者

许可证

所有的代码和文档都是在麻省理工学院的许可下分发的。有关详细信息,请参见^{}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Jpanel中删除或隐藏工具栏面板   如何将Java API文档添加到Eclipse?   java从twitter中提取推文的位置   特定字典中的java文本匹配   java属性在树模型的内部类上不可读   maven mvn exec:java失败,出现FileNotFoundException   java无法实现不安全线程   java向JDK11的迁移改变了必须从Maven运行测试的方式   java如何在不同网络NAT后面的两个客户端之间建立TCP连接?   如何在JavaSelenium中使用PageObjects和@FindBy执行javascript元素   在java中使用htmlworker将html文本转换为pdf   java字符串到密码文本   java setContentView集合显示黑色   linux java运行时。getRuntime()。exec无法获取某些命令的输出