В программе, написанной с помощью Pygame, вылезает ошибка 'pygame.error: video system not initialized' и чёрный экран при запуске

Моя первая игра, точнее, её первоначальный вид (без особо красивых иконок, аватаров, фонов и предметов), была почти готова, и прекрасно запускалась, пока я не захотел добавить стартовое меню, в котором можно будет изменять параметры игры и, собственно, запускать её кнопкой 'Start'. Однако, после нескольких изменений, неправленных на появление меню, оказалось, что у меня какие-то проблемы с int game() и чёрный экран. Я удалил ранее внесённые изменения и попытался запустить игру без меню, какой она первоначально и была, но чёрный экран всё равно преследовал меня, а его закадычным другом стал он:

Traceback (most recent call last):
  File "C:\Users\olive\AppData\Local\Temp\main.py\debug.py", line 40, in <module>
    keys = pygame.key.get_pressed()
pygame.error: video system not initialized

Утомлённый поиском ответов на зарубежных и местных форумах, я решил обратиться к обитателям русского СтакОвера. Очень надеюсь на вашу помощь. Вот, собственно, и сам код (который я сжал как только мог):

Import pygame, sys

pygame.init()
pygame.font.init()

window = pygame.display.set_mode((1000, 690))

screen = pygame.Surface((1000, 690))

player = pygame.Surface((60, 60))

zet = pygame.Surface((60, 60))

arrow = pygame.Surface((20, 40))

count = 0

a_x = 1000
a_y = 1000

strike = False

z_x = 0
z_y = 0

x_p = 0
y_p = 640


z_right = True


done = False

while done == False:
for e in pygame.event.get():
if e.type == pygame.QUIT:
pygame.quit()
done = True
keys = pygame.key.get_pressed() #ошибка здесь
if keys[pygame.K_w]:
y_p -= 5
if keys[pygame.K_s]:
y_p += 5
if keys[pygame.K_a]:
x_p -= 5
if keys[pygame.K_d]:
x_p += 5
if e.type == pygame.KEYDOWN and e.key == pygame.K_SPACE:
if strike == False:
strike = True
a_x = x_p
a_y = y_p - 40
if strike:
a_y -= 1.5
if a_y < 0:
strike = False
a_y = 1000
a_x = 1000

if inter(a_x, a_y, z_x, z_y, 20, 40):
count += 1
strike = False
a_y = 1000
a_x = 1000

if z_right:
z_x += 1
if z_x > 960:
z_x -=1
z_right = False
else:
z_x -=1
if z_x < 0:
z_x += 1
z_right = True


string = myfont.render('Счёт: '+str(count), 0, (255,0,0))

screen.fill((0,225,0))
screen.blit(string, (0, 430))
screen.blit(arrow, (a_x, a_y))
screen.blit(zet, (z_x, z_y))
screen.blit(player, (x_p, y_p))
window.blit(screen, (0, 0))
pygame.display.update()

pygame.quit()
exit()

Кстати говоря, я не уверен, что обошёл все вопросы на форумах и ответы на них, которые мог, так что какое-то решение мог упустить. Так что, я не отрицаю, что мой вопрос может быть похож на остальные на этом сайте, не сочтите за копипасту или флуд.


Ответы (2 шт):

Автор решения: Вадим Королёв

Видимо у тебя ошибка в идентации. По всей видимости, у тебя проверка на нажатия происходит когда срабатывает событие ВЫХОДА. pygame деинициализируется и все функции отказывают. Поправь форматирование и всё будет чётко. + делай бекапы

→ Ссылка
Автор решения: Ярослав

попробуй убрать quit() - у меня из за этого была эта ошибка

→ Ссылка