在 Python/Pygame 中获取没有焦点的输入?

Nyx*_*eld 3 python pygame input

我正在为自己创建一个小应用程序,以便能够显示我的键盘输入并在操纵杆布局中显示它们,如下所示:

我的应用程序的当前视图

这本身在 Pygame 窗口聚焦时工作得很好,我的问题是,我不能一直聚焦它,事实上它永远不会聚焦,因为无论哪种方式我将使用 OBS 进行流式传输,或者我将使用我的模拟器,pygame 没有检测到窗口外的输入。有没有办法让 python 或 pygame 读取计算机的所有输入???我在这里碰壁了。提前致谢!!

Old*_*rey 5

为此有一个 SDL 环境变量!只需设置它即可启用后台输入。

import os
os.environ["SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS"] = "1"
Run Code Online (Sandbox Code Playgroud)

将其添加到操纵杆文档中示例的顶部并尝试一下。

使用 pygame 2.1.2、sdl 2.0.18、Windows 10 (21H2)、Xbox One 等控制器进行测试

参考: