У меня есть простой код, который ведет себя не так, как я ожидал:
import pygame,sys
from pygame.locals import *
pygame.init()
window = pygame.display.set_mode((1300,700))
while True:
window.fill((0,0,0))
pygame.display.update()
#show black window, should happen before wait
pygame.time.wait(2000)
#program waits for 2 seconds, and then shows black window
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit(0)
Программа ждет 2 секунды, прежде чем обновить дисплей и показать черное окно. Почему? Поскольку python является интерпретируемым языком, не должно ли pygame.display.update()
происходить перед pygame.time.wait(2000)
?
fill
. Я подозреваю, что в некоторых системах он может использовать события для обновления экрана. - person furas   schedule 22.12.2017pygame.event.pump()
перед вызовомwait
. - person jsbueno   schedule 22.12.2017pygame.event.pump()
передpygame.time.wait
или просто поставьтеpygame.time.wait
послеfor event in pygame.event.get():
. Я в коде всегда используюfor event in pygame.event.get():
сразу послеwhile True
. - person furas   schedule 29.12.2017pygame.event.pump()
у меня работает. Я передвинуfor event in pygame.event.get():
в начале программы и посмотрю, работает ли это без помпы. Спасибо! - person Johnny Dollard   schedule 30.12.2017