Для каждого события в очереди событий вы вызываете pygame.quit()
, который деинициализирует все модули Pygame:
pygame.quit()
деинициализировать все модули Pygame
quit() -> None
Деинициализировать все модули Pygame, которые были ранее инициализированы.Когда интерпретатор Python завершает работу, этот метод вызывается независимо, поэтому вашей программе он не нужен, за исключением случаев, когда он хочет завершить свои ресурсы Pygame и продолжить.Можно вызывать эту функцию более одного раза, поскольку повторные вызовы не имеют никакого эффекта.
Примечание Вызов pygame.quit()
деинициализация всех модулей Pygame не приведет к выходу из вашей программы.Подумайте, чтобы ваша программа заканчивалась так же, как и обычная программа на Python.
Таким образом, на следующей итерации цикла while
вызов pygame.event.get()
не будет выполнен, поскольку видеосистема больше не инициализируется.
Вы должны проверить type
атрибут объекта event
против константы pygame.QUIT
, и не вызывать функцию pygame.quit()
:
...
if event.type == pygame.QUIT:
...
Обычно нет необходимости вызывать pygame.quit()
.