#python #pygame
#python #pygame
Вопрос:
while gameStart == True:
startScreen()
for event in pygame.event.get():
if event.type == pygame.QUIT:
youLose = True
gameStart = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
moveY = -snek.fast
moveX = 0
gameStart = False
if event.key == pygame.K_ESCAPE:
youLose = True
gameStart = False
У меня нет проблем, когда я запускаю игру в первый раз. Я пытаюсь сбросить игру после того, как проиграл, но продолжаю получать ошибку:
if event.type == pygame.KEYDOWN:
UnboundLocalError: local variable 'event' referenced before assignment
Я не понимаю, почему это выдает мне ошибку, и еще меньше, почему она выдает ошибку только во второй раз. Я попытался сделать отступ в блоке, чтобы включить его в for
цикл, но это приводит к сбою моей игры.
Комментарии:
1. Если отступ в этом вопросе правильный, проблема в том, что вам нужно настроить оператор KEYDOWN if, чтобы он находился внутри цикла for.
Ответ №1:
Оператор keydown if-else должен находиться внутри цикла for
while gameStart == True:
startScreen()
for event in pygame.event.get():
if event.type == pygame.QUIT:
youLose = True
gameStart = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
moveY = -snek.fast
moveX = 0
gameStart = False
if event.key == pygame.K_ESCAPE:
youLose = True
gameStart = False