Создайте 2 переменные в глобальном пространстве имен:
bonus_text = None
bonus_end = 0
hit
устанавливает bonus_end
и вызывается один раз, когда происходит "попадание":
def hit():
global bonus_end, bonus_text
bonus = BONUSFONT.render("+3 points!", 1, (0, 0, 0))
bonus_text = (bonus, (200, 150))
bonus_end = pygame.time.get_ticks() + 3000
Создать функция, которая показывает бонус text_
def show_bonus():
if bonus_text and pygame.time.get_ticks() < bonus_end:
surface.blit(*bonus_text)
Вызов функции непрерывно в главном приложении l oop:
while True:
# [...]
# show bonus text
show_bonus()
# update display
# [...]