Есть ли способ заставить программу Pygame работать в фоновом режиме? - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь создать программу, которая подсчитывает, сколько раз клавиши Z и X нажимаются на моем p c во время игры, и я использую 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()

1 Ответ

0 голосов
/ 12 апреля 2020

Возможно, но не через pygame. Как это сделать, зависит от используемой операционной системы и графической среды, в которой вы работаете.

Если вы используете pygame поверх X11 (как правило, UNIX -подобные операционные системы, за исключением macOS) ) затем вы можете использовать XSelectInput для sn oop на нажатиях клавиш.

Вы также можете «подключиться» к событиям клавиатуры в ms- windows и OS / 2 Presentation Manager. В ms- windows это делается с использованием SetWindowsHookExA, IIR C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...