я запустил новый проект на python, используя pygame, и для фона я хочу, чтобы нижняя половина была заполнена серым, а верхняя черным. я раньше использовал прямоугольное рисование в проектах, но по какой-то причине оно, кажется, не работает? я не знаю, что я делаю не так. самое странное, что результат отличается каждый раз, когда я запускаю программу. иногда отображается только черный экран, а иногда серый прямоугольник закрывает часть экрана, но никогда половину экрана.
import pygame, sys from pygame.localsimport * pygame.init()
whileTrue: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit()
Переведено автоматически
Ответ 1
Вам нужно обновить отображение. На самом деле вы рисуете на Surface объекте. Если вы рисуете на поверхности, связанной с дисплеем PyGame, это не сразу видно на дисплее. Изменения становятся видимыми, когда отображение обновляется с помощью pygame.display.update() или pygame.display.flip().
В то время как pygame.display.flip() будет обновляться содержимое всего дисплея, pygame.display.update() позволяет обновлять только часть экрана до обновленной, а не всю область. pygame.display.update() это оптимизированная версия pygame.display.flip() для программных дисплеев, но не работает для дисплеев с аппаратным ускорением.