首页 > 解决方案 > 有没有办法让 pygame 程序在后台运行?

问题描述

我正在尝试创建一个程序来计算在玩游戏时在我的电脑上按下 Z 和 X 键的次数,我正在使用 pygame,因为我使用它几次来理解语法并创建简单的游戏。 ..

一切正常,因为它实际上计算按键...但我不知道如何让它在后台运行。

这是代码:

import pygame

pygame.init()

screen = pygame.display.set_mode((300, 100))

countZ = 0
countX = 0

run = True

while run:
    screen.fill((255,255,255))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

        if event.type == pygame.KEYDOWN:
            if event.key ==pygame.K_z:
                countZ += 1
            if event.key == pygame.K_x:
                countX += 1

    print(countZ, countX)
    pygame.display.update()

标签: pythonpygamebackground-process

解决方案


这可能是可能的,但可能不是通过pygame. 如何做到这一点取决于您使用的操作系统和您正在运行的图形环境。

如果您pygame在 X11(通常是 macOS 之外的类 UNIX 操作系统)之上运行,那么您可以使用XSelectInput监听按键。

您还可以“挂钩”到 ms-windows 和 OS/2 Presentation Manager 上的键盘事件。在 ms-windows 上,它是使用SetWindowsHookExAIIRC 完成的。


推荐阅读