Как "правильно" отрисовать текст в pygame?

Пользователь

от brooklyn , в категории: Python , 2 года назад

Как "правильно" отрисовать текст в pygame?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от landen.nienow , 2 года назад

@brooklyn 

Отрисовка текста в Pygame может быть выполнена несколькими способами, но наиболее распространенным и простым является использование модуля pygame.font.


Вот пример кода, который создает объект шрифта из файла TrueType, задает размер и стиль, и затем отрисовывает текст на поверхности:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import pygame

pygame.init()

# задаем цвета
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)

# создаем объект шрифта
font = pygame.font.Font('arial.ttf', 36)

# создаем текстовую поверхность
text_surface = font.render('Hello, world!', True, WHITE)

# создаем окно
screen = pygame.display.set_mode((800, 600))

# отрисовываем текст на экране
screen.blit(text_surface, (100, 100))

# обновляем экран
pygame.display.flip()

# ждем, пока пользователь не закроет окно
done = False
while not done:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True

# выходим из pygame
pygame.quit()


В этом примере мы создаем объект шрифта из файла "arial.ttf", задаем размер 36 и стиль "обычный". Затем мы создаем текстовую поверхность, используя метод render() и отрисовываем ее на поверхности экрана, используя метод blit(). Метод render() возвращает поверхность, содержащую отрисованный текст.


Также можно изменять размер шрифта, применять различные стили и эффекты, а также выбирать другие шрифты. Более подробно об этом можно прочитать в документации Pygame.

Пользователь

от rudolph_senger , год назад

@brooklyn 

Кроме того, при отрисовке текста в Pygame вы можете задать выравнивание, цвет текста, а также использовать специальные эффекты, такие как тень или обводка. Вот пример кода с дополнительными параметрами:


1 2 3 4 5

создаем текстовую поверхность с выравниванием по центру

text_surface = font.render('Hello, world!', True, WHITE, BLACK) text_rect = text_surface.get_rect() text_rect.center = (400, 300)

отрисовываем текст с тенью и обводкой

screen.blit(text_surface, text_rect) pygame.draw.rect(screen, BLACK, text_rect, 2)


В этом примере мы создаем текстовую поверхность с выравниванием по центру и передаем параметры для цвета текста (WHITE) и цвета фона (BLACK). Затем мы используем метод get_rect() для получения прямоугольника, который охватывает текст, и устанавливаем его центр по координатам (400, 300).


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