Почему в данном коде не работает def?
Хочу сделать, чтобы текст показывался с интервалом. Проблема в том, что когда делаешь без функции def, выводится весь текст, а не частями. Функция def почему-то не работает.
one = font.render(text1, 1, (12, 140, 0, 1))
two = font.render(text2, 2, (12, 140, 0, 1))
three = font.render(text3, 3, (12, 140, 0, 1))
while True:
screen.fill((0, 0, 0))
for click in pygame.event.get():
if click.type == pygame.QUIT:
pygame.quit()
time.sleep(0.10)
pygame.display.set_icon(pygame.image.load('111.jpg'))
screen = pygame.display.set_mode((1920, 1020))
pygame.display.set_caption('Внимание!!!')
messagebox.showerror('аха', ' dd')
def lol():
pygame.time.delay(500)
screen.blit(one, (0, 50))
lol()
def kek():
pygame.time.delay(700)
screen.blit(two, (0, 100))
kek()
def chebyrek():
pygame.time.delay(900)
screen.blit(three, (0, 150))
chebyrek()
pygame.display.update()
Ответы (1 шт):
Автор решения: Roman-Stop RU aggression in UA
→ Ссылка
Если нужно отображать текст скажем с 5 по 7 секунду, то нужно в цикле проверять, что сейчас от запуска прошло больше 5 и меньше 7 секунд и только в этом случае отображать текст:
one = font.render(text1, 1, (12, 140, 0, 1))
while True:
screen.fill((0, 0, 0))
for click in pygame.event.get():
if click.type == pygame.QUIT:
...
if 5000 < pygame.time.get_ticks() < 7000:
screen.blit(one, (0, 50))
if 7000 < pygame.time.get_ticks() < 10000:
screen.blit(two, (0, 100))
...
pygame.display.update()