Повторное открытие полноэкранного режима игры не работает в pygame

Я пытаюсь сделать полноэкранную игру 700x700 в pygame, но всякий раз, когда я выхожу из игры и возвращаюсь, экран ломается, показывая, что было открыто до повторного открытия игры. Как исправить без изменения ширины и высоты экрана?

Width, Height = 700, 700
win = pygame.display.set_mode((Width, Height), pygame.FULLSCREEN)

person Abdullah Alawad    schedule 22.06.2020    source источник
comment
Вы используете аппаратное ускорение?   -  person mousetail    schedule 22.06.2020
comment
что такое аппаратное ускорение?   -  person Abdullah Alawad    schedule 22.06.2020
comment
Вы имеете в виду, что я меняю экран исходя из разрешения экрана плеера?   -  person Abdullah Alawad    schedule 22.06.2020
comment
Используете ли вы pygame.HWSURFACE или pygame.DOUBLEBUFF, потому что любой из этих вариантов предотвратит автоматическое обновление экрана при сворачивании, заставляя вас делать это вручную   -  person mousetail    schedule 22.06.2020
comment
Кроме того, пожалуйста, опубликуйте свой код. Мы не сможем обнаружить проблемы в вашем коде, если вы его не опубликуете   -  person mousetail    schedule 22.06.2020
comment
Я только что вставил код   -  person Abdullah Alawad    schedule 22.06.2020
comment
Так что же такое нежелательный побочный эффект?   -  person mousetail    schedule 22.06.2020
comment
Давайте продолжим это обсуждение в чате.   -  person Abdullah Alawad    schedule 22.06.2020


Ответы (1)


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

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

if event.type == pygame.ACTIVEEVENT:
    if event.gain == 1:
        win = pygame.display.set_mode((Width, Height), pygame.FULLSCREEN)
person mousetail    schedule 22.06.2020