Вы обрабатываете события либо pygame.event.pump()
, либо pygame.event.get()
после pygame.display.update()
. В некоторых системах обновление отображения завершается во время обработки внутренних событий. Например:
while running:
pygame.time.delay(100)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys=pygame.key.get_pressed()
win.fill((255,255,255))
if keys[pygame.K_RETURN]:
text = font.render("You pressed Return", True,(0,0,0))
win.blit(text, (350,350))
pygame.display.update()
if keys[pygame.K_RETURN]:
pygame.event.pump() # <----
pygame.time.delay(5000)
В любом случае, я не буду так делать, потому что система не отвечает, когда приложение задерживается.
Использование pygame.time.get_ticks()
чтобы нарисовать текст для промежутка времени.
Получить текущее время в миллисекундах:
current_time = pygame.time.get_ticks()
Когда нажата RETURN , затем вычислите время, когда текст чтобы исчезнуть:
if keys[pygame.K_RETURN]:
pause_time = current_time + 5000
Нарисуйте текст так долго text_time
больше current_time
:
Например:
running = True
text_time = 0
while running:
pygame.time.delay(10)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
current_time = pygame.time.get_ticks()
keys = pygame.key.get_pressed()
if keys[pygame.K_RETURN]:
text_time = current_time + 5000
win.fill((255,255,255))
if text_time > current_time:
text = font.render("You pressed Return", True,(0,0,0))
win.blit(text, (350,350))
pygame.display.update()