一个简单易用的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第三方库


热门话题
java是否存在这样一种场景:Java7的Hashmap实现优于Java8的实现   java如何打印这些完整的数组?   java BuildException:未能执行aapt   java如何使用类。未知类型的集合返回的cast()   java准备语句返回错误的值   webview 安卓中的java显示身份验证对话框   java如何重命名列名JPA Hibernate   java查询从特定用户和特定时间段的Oracle表(通过比较原始表和备份表)中选择修改的行   java Youtube视频仅在三星S6设备上加载时自动暂停   未调用java RecyclerView getItemViewType   使用JSch setCommand执行带有源选项的java Shell ping命令时失败   java Hibernate:无法删除|删除分离的实例   Java Spring@MappedSuperclass字段作为子类中的@Id字段   java Android:确定单击了哪个按钮,因为该按钮未在xml中定义   如何计算java阵列内存使用率   使用Java查找按字母顺序排列的第一个字符串   javascript注销功能刷新页面,但页面仍已登录   当接口作为参数提供时,java依赖项注入不起作用   java中带原语的字符串扭曲