У меня проблема с pygame, когда я пытаюсь показать игровое сообщение, но оно просто сбрасывает фон после того, как пользователь нажимает ввод, в результате чего игровое сообщение отображается только на долю секунды.
Я собираю пользовательский ввод через некоторое время l oop (потому что он нужен только для запуска три раза) и использую pygame.event.poll () для обнаружения входящих входов, таких как ввод с клавиатуры и т. Д. c. Таким образом, я сделал так, что, когда пользователь нажимает ввод, он будет оценивать введенные данные и покажет игровое сообщение, если ввод правильный или нет. Тем не менее, игровое сообщение будет удалено за доли секунды, так как через некоторое время l oop. Можно ли как-нибудь сделать так, чтобы игровое сообщение отображалось до тех пор, пока я снова не нажму «Ввод»?
Вот сокращенная версия кода:
while bad_input < 3:
screen.blit(Variables.bgImage, [0, 0])
...
...
e = pygame.event.poll()
...
if e.type == KEYDOWN:
# Add a character
textBox.AddChar(pygame.key.name(e.key))
...
# If the user presses return,
elif e.key == K_RETURN:
# And if the text size was more than 0
if len(textBox.text) > 0:
user_input = textBox.text.lower()
if result[0]:
showGameLog("Correct!")
else:
showGameLog("Hm, not quite.")
bad_input += 1
textBox.text = ""
# Then update the textbox
textBox.Update()
pygame.display.update()
и вот код для функции showGameLog:
def showGameLog(txt):
text = font.render(txt , True, Color.black)
screen.blit(logText, [25, 570])
Вот видео о том, как выглядит проблема: problemvid