一个简单易用的python xinput api接口

XInput-Python的Python项目详细描述


xinput python

python的xinput api的一个简单易用的接口。

xinput python提供了一些可用于查询控制器信息的简单方法。

微型文档

xinput仅限于windows

安装

xinput python可从PyPI使用

pip install XInput-Python

可以这样导入:

import XInput

使用xinput python

xinput python提供了几个函数:
get_connected() -> (bool, bool, bool, bool)查询连接了哪些控制器(注意:不要查询每个帧)

get_state(user_index) -> State获取控制器的状态user_index

get_button_values(state) -> dict返回一个字典,显示当前按下的按钮。

get_trigger_values(state) -> (LT, RT)返回一个元组,其左右触发器的值在0.01.0范围内

get_thumb_values(state) -> ((LX, LY), (RX, RY))返回拇指棒的值,用x和y表示,范围从0.01.0

set_vibration(user_index, left_speed, right_speed) -> bool (Success)user_index左右马达的振动分别设置为065535之间的值,或设置为0.01.0之间的值。

get_battery_information(user_index) -> (<type>, <level>)返回user_index的电池信息

set_deadzone(deadzone, value) -> None设置左/右拇指杆和触发器的死区值。

下面存在以下子项:< > >XInput.DEADZONE_LEFT_THUMB-(范围0到32767)左手拇指杆死区(默认为7849)

XInput.DEADZONE_RIGHT_THUMB-(范围0到32767)右拇指杆死区(默认为8689)

XInput.DEADZONE_TRIGGER-(范围0到255)触发死区(默认值为30)

使用事件

您还可以使用事件系统:

events = get_events()

get_events将返回生成Event类实例的生成器。

Event类始终具有以下成员:
Event.user_index(范围0到3)-发出此事件的控制器的ID
Event.type-发出了哪种类型的事件

<> >存在以下事件:
XInput.EVENT_CONNECTED == 1-已连接具有此user_index的控制器(如果在启动脚本之前已连接控制器,则甚至会发生此事件)

XInput.EVENT_DISCONNECTED == 2-具有此user_index的控制器已断开连接

XInput.EVENT_BUTTON_PRESSED == 3-按下控制器上的按钮user_index

XInput.EVENT_BUTTON_RELEASED == 4-控制器上的按钮被释放user_index

XInput.EVENT_TRIGGER_MOVED == 5-在控制器上移动了触发器user_index

XInput.EVENT_STICK_MOVED == 6-在控制器上移动了一个拇指棒user_index

按钮事件
所有与按钮相关的事件都有以下附加成员:
Event.button_id-按钮的xinput数值表示 Event.button-按钮的文字表示 下面存在以下按钮:< >

"DPAD_UP" == 1
"DPAD_DOWN" == 2
"DPAD_LEFT" == 4
"DPAD_RIGHT" == 8
"START" == 16
"BACK" == 32
"LEFT_THUMB" == 64
"RIGHT_THUMB" == 128
"LEFT_SHOULDER" == 256
"RIGHT_SHOULDER" == 512
"A" == 4096
"B" == 8192
"X" == 16384
"Y" == 32768

触发事件
所有与触发器相关的事件都有以下附加成员:
Event.trigger(或者XInput.LEFT == 0或者XInput.RIGHT == 1)-触发被移动了
Event.value(范围0.0到1.0)-按当前按下的触发器的大小

stick事件
所有与拇指棒相关的事件都有以下附加成员:
Event.stick(或者XInput.LEFT == 0或者XInput.RIGHT == 1)-移动了哪个木棒
{< CD49>}(范围1至1)-在X轴上的棒的位置
{< CD50> }(范围1至1)- Y轴上的棒的位置
Event.value(范围0.0到1.0)-斗杆距其中心位置的距离
Event.dir(x和y的元组)-木棒当前指向的方向

演示

运行XInput.py作为main(python XInput.py)以查看控制器输入的可视化表示。

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

推荐PyPI第三方库


热门话题
尽管有nosandbox选项,java Chromedriver不会以root用户身份运行   调用rest API时发生java Getting resource not available错误   java Tomcat6如何选择部署WAR文件的顺序   java如何绑定swing。JTextArea到PrintStream以接受数据   java在Apache Camel reout中设置ReplyToQMgr和ReplyToQ,以使用IBM MQ接收COA   java异常意外标记:SMALLINT;自动递增主键时   使用Geotools创建Google地图覆盖的java   java增强for循环在尝试调用引发异常的方法时未执行   使用JMS和Spring进行java测试   扩展ListView二进制XML行0时发生java错误#   java什么情况会导致线程从等待队列转移到阻塞队列?   java何时在安卓中使用parcelable?   安卓 java。lang.RuntimeException:使用Facebook登录时传递结果ResultInfo失败   java通过AsyncTask Android在循环中执行方法?   用于格式化XML/XSLT的java Eclipse插件   java如何修复蛙跳赋值中浮点到整数的不正确舍入?   java在GenericObject池中创建对象   公共静态main上的java变体(字符串args[]