一个简单易用的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.0
到1.0
范围内
get_thumb_values(state) -> ((LX, LY), (RX, RY))
返回拇指棒的值,用x和y表示,范围从0.0
到1.0
set_vibration(user_index, left_speed, right_speed) -> bool (Success)
将user_index
左右马达的振动分别设置为0
和65535
之间的值,或设置为0.0
到1.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)-发出此事件的控制器的IDEvent.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
)以查看控制器输入的可视化表示。