Вывод символа через промежуток времени

Есть код, который должен выводить каждый новый символ через N секунд(допустим 5 символов в секунду). Есть код пример(так мало, потому - что всё остальное - базовые блоки), так вот, каким лучше образом написать на экране любой текст: с помощью последовательного добавления символа или есть встроенный способ в модуле?

for i in range(text):
            time.sleep(0.5)
            screen.blit(text, place)

Ответы (1 шт):

Автор решения: Danis

попробуйте так:

import time

pygame.init()
win = pygame.display.set_mode((720, 720))

font = pygame.font.SysFont("Arial", 32)

def f(text, time_, font, x, y):
    tick = time_ / len(text)

    for i, char in enumerate(text):
        win.blit(font.render(text[:i + 1], 1, (200, 200, 200)), (x, y))
        pygame.display.update()
        time.sleep(tick)

f("Hello, World", 1, font, 0, 0)

принимает 5 параметров:

  • text это что мы будем отрисовывать
  • time_ в течении сколько времени будем отрисовывать
  • font шрифт для отрисовки
  • x и y это координаты для отрисовки

вот пример программы которая будет писать "Hello, World!!! при каждом нажатии на экран

import pygame
import time

pygame.init()
win = pygame.display.set_mode((720, 720))

font = pygame.font.SysFont("Arial", 32)

def f(text, time_, font, x, y):
    tick = time_ / len(text)

    for i, char in enumerate(text):
        win.blit(font.render(text[:i + 1], 1, (200, 200, 200)), (x, y))
        pygame.display.update()
        time.sleep(tick)

y = 0
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            
        elif event.type == pygame.MOUSEBUTTONDOWN:
            y += 25
            f("Hello, World!!!", .5, font, 0, y)
→ Ссылка