首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python的多个Gamepad?

使用Python的多个Gamepad?
EN

Stack Overflow用户
提问于 2017-11-01 02:25:50
回答 1查看 1K关注 0票数 1

我找到了一种在Python中使用游戏垫的方法,使用模块Evdev (参见末尾的链接)。在本教程中,作者只使用一个游戏垫,但他也指出,应该可以使用基于以下代码的多个游戏垫:

代码语言:javascript
复制
from evdev import InputDevice
from select import select
gamepad = InputDevice('/dev/input/event0')
while True:
    r,w,x = select([gamepad], [], [])
    for event in gamepad.read():
        print(event)

Select.select似乎要等到按钮被按下,这样程序才会被插入,直到出现这种情况。如何修改代码以使用多个游戏垫或在等待按钮输入时执行其他代码?或者,是否有更好的替代方法来替代使用evdev?

http://ericgoebelbecker.com/2015/06/raspberry-pi-and-gamepad-programming-part-1-reading-the-device/

EN

回答 1

Stack Overflow用户

发布于 2017-11-01 18:03:07

如何修改代码以使用多个游戏垫或在等待按钮输入时执行其他代码?

查看InputDevice.read的文档

read() 从设备读取多个输入事件。返回生成InputEvent实例的生成器对象。如果目前没有可用的事件,则引发BlockingIOError

选择将阻塞,直到输入事件可用为止。相反,我们可以读取事件,直到我们得到BlockingIOError。然后继续到下一个游戏垫,或者做任何其他需要在主循环中完成的工作。

您还可以考虑使用InputDevice.read_one

read_one() 读取并返回单个输入事件作为InputEvent的实例。 如果没有挂起的输入事件,则返回None

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47047297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档