Динамический текст без .fill() Pygame?

В библиотеке Pygame обычно для вывода динамического текста используется метод .fill(), однако существует и другой подход к выводу динамического текста без использования данного метода.

Вариант, который не требует использования .fill(), заключается в создании отдельного объекта текста и его отрисовке на поверхности игрового окна каждый кадр.

Для начала, необходимо импортировать библиотеки pygame и pygame.font:

import pygame
import pygame.font

Затем, инициализируйте pygame:

pygame.init()

Создайте игровое окно, задав его размеры и другие параметры:

window_width = 800
window_height = 600
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("Dynamic Text Example")

Определите размер и стиль текста, который будет использоваться:

font_size = 24
font = pygame.font.Font('Arial.ttf', font_size)

Создайте переменную для хранения текста:

text = "Hello, World!"

Далее, используйте цикл обработки событий и отрисовки экрана:

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    
    # Очистка экрана
    window.fill((0, 0, 0))
    
    # Создание объекта текста
    text_surface = font.render(text, True, (255, 255, 255))
    
    # Отрисовка текста на экране
    window.blit(text_surface, (window_width // 2 - text_surface.get_width() // 2, window_height // 2 - text_surface.get_height() // 2))
    
    pygame.display.flip()

В этом коде мы обрабатываем события, очищаем экран, создаем объект текста с помощью функции render() из модуля pygame.font, затем отрисовываем его на экране с помощью функции blit(), а затем обновляем отображение с помощью функции flip().

Вы можете изменять содержимое переменной text в коде или на основе пользовательского ввода, и текст будет обновляться на экране каждый кадр.

Это простой пример динамического текста без использования .fill(). Вы можете настраивать шрифт, размер, цвет и расположение текста, добавлять анимацию или создавать более сложные эффекты в зависимости от ваших потребностей.