Я пытаюсь построить игру в Pygame, в которой, если игрок переходит на красный квадрат, он проигрывает. Когда это происходит, я хочу отобразить картину взрыва, где проигрыватель проиграл, пока пользователь не нажмет любую клавишу на клавиатуре. Когда пользователь нажимает клавишу, я вызываю функцию new_game (), чтобы начать новую игру. Проблема в том, что мой код, кажется, пропускает строку, в которой я уничтожаю взрыв, и вместо этого просто запускает новую игру прямо сейчас.
Я пытался использовать что-то подобное, но я не уверен, что поместить в цикл while (я хочу подождать, пока не произойдет нажатие клавиши):
while event != KEYDOWN:
# Not sure what to put here
Если я поместил time.sleep () в цикл while, вся программа зависнет и изображение не будет стерто.
Вот я загружаю изображение в Pygame:
explosionpic = pygame.image.load('C:/Users/rohan/Desktop/explosion.png')
И вот где я это называю / определяю, проиграл ли игрок (программа, кажется, пропускает строку screen.blit, потому что я даже не вижу изображение вообще):
if get_color(p1.x + p1_velocity_x, p1.y + p1_velocity_y) == red: # If player lands on a red box
screen.blit(explosionpic, (p1.x, p1.y))
# Bunch of other code goes here, like changing the score, etc.
new_game()
Предполагается, что изображение будет отображаться, затем, когда пользователь нажимает клавишу, вызывается функция new_game ().
Буду признателен за любую помощь.