是否有事件处理选项可以最大程度地减少和扩大pygame中的屏幕?

时间:2019-01-05 06:40:14

标签: python python-3.x pygame event-handling

是否有任何事件处理程序可以最小化或最大化屏幕,就像退出屏幕一样?

a => 1  type: integer
b => 2  type: integer
c => 4  type: integer
d  type: array
d2_1 => 1  type: integer
d2_2  type: array
d3_1 => 1  type: integer
d3_2 => 2  type: integer

1 个答案:

答案 0 :(得分:1)

当窗口最小化/图标化或最大化时,Pygame将pygame.ACTIVEEVENT添加到事件队列中。您可以检查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()