Вывод символа через промежуток времени
Есть код, который должен выводить каждый новый символ через 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)