Есть ли возможность обработки событий, чтобы свернуть и развернуть экран в Pygame? - PullRequest
0 голосов
/ 05 января 2019

Есть ли какой-либо обработчик событий, чтобы свернуть или развернуть экран, например, как выйти из экрана?

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

1 Ответ

0 голосов
/ 05 января 2019

Pygame добавляет pygame.ACTIVEEVENT s в очередь событий, когда окно свернуто / свернуто или свернуто. Вы можете проверить if event.gain == 1 and event.state == 6: и if event.gain == 0 and event.state == 6:, чтобы увидеть, было ли окно развернуто или свернуто. Единственная проблема заключается в том, что event.gain == 1 and event.state == 6 также True, когда окно получает фокус ввода.

import pygame as pg


pg.init()
screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
BG_COLOR = pg.Color('gray12')

done = False
while not done:
    for event in pg.event.get():
        if event.type == pg.QUIT:
            done = True
        elif event.type == pg.KEYDOWN:
            if event.key == pg.K_i:
                pg.display.iconify()
        elif event.type == pg.ACTIVEEVENT:
            if event.gain == 1 and event.state == 6:
                print('maximized')
            elif event.gain == 0 and event.state == 6:
                print('minimized')

    screen.fill(BG_COLOR)
    pg.display.flip()
    clock.tick(60)

Если вы хотите свернуть / создать иконку окна с помощью нажатия клавиши, вы можете позвонить pygame.display.iconify().

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