Текст, который рисуется в цикле событий, рисуется один раз, когда происходит событие, но он сразу покрывается screen.fill((255, 255, 255))
. Все, что нарисовано в основном цикле, рисуется непрерывно в каждом кадре.
Не делайте никаких дополнительных pygame.display.flip()
или pygame.display.update()
помимо этого в основном цикле. Добавьте условие и нарисуйте текст в зависимости от условия в основном цикле.
например Условие может быть text4 != None
:
text4 = None
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
done = True
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
F = F + 1
text4 = font.render(str(F), True, (128, 128, 0))
passed_time = time.time() - start
if passed_time > 2 and i < 5:
start = time.time()
i += 1
screen.fill((255, 255, 255))
if text4 != None:
screen.blit(text4,(460 - text4.get_width() // 1, 40 + i * 20 - text4.get_height() // 2))
# [...]
pygame.display.flip()
clock.tick(60)
Удалите все pygame.display.flip()
и clock.tick()
из кода, за исключением того, что в конце основного цикла. Но используйте условия и функции для выборочного рисования сцены.