Если вы посмотрите на приведенный ниже код, у меня есть условия внутри моей функции рисования для отображения экрана победителя и экрана проигравшего в зависимости от длины целевой группы спрайтов (это целевая игра-шутер). Я добавил булеву переменную с именем game_over. Когда отображается экран проигравшего или победителя, он изменяется на True. Затем внутри игры l oop я добавил событие, если нажать x, убить время l oop. После тестирования нажатие клавиши x, похоже, ничего не делает. Однако я не понимаю, почему это может произойти, поскольку я повторил использование функции события ключа, которую использовали другие ответчики stackoverflow.
def refresh_window():
if len(target_sprites) > 0:
window.blit(bgr, (0,0))
if len(target_sprites) == 0:
window.blit(winner, (0,0))
player_sprite.kill()
game_over = True
if target_1.got_away == True:
window.blit(loser, (0,0))
for item in target_sprites:
item.kill()
player_sprite.kill()
game_over = True
while exec:
current_time = pygame.time.get_ticks()
for event in pygame.event.get():
if event.type == pygame.QUIT:
exec = False
key_press = pygame.key.get_pressed()
if game_over == True:
if key_press[K_x]:
exec = False