Добавление текста в Rect - PullRequest
1 голос
/ 08 марта 2019

Итак, я определил функцию Meteor и настроил размеры и место ее появления на экране.

def Meteor(Meteorx, Meteory, Meteorw, Meteorh, colour):
    pygame.draw.rect(Screen, colour, [Meteorx,Meteory, Meteorw, Meteorh])

но я хотел добавить к нему текст, но я не могу понять, как добавить его в прямоугольник (примечание: я попытался поиграться с font.render и т. Д.). Я иду правильным путем или есть более простой способ, чем положить его на прямоугольную поверхность.

Исходный код https://github.com/WamblyTK/Word-Blaster/blob/master/Full%20Draft%20%231

1 Ответ

2 голосов
/ 08 марта 2019

Сначала вам понадобится pygame.font, который можно создать с помощью pygame.font.SysFont() или pygame.font.Font. e.g.:

import pygame.font

font = pygame.font.SysFont('Times New Roman', 30)

С помощью объекта шрифта текст может быть обработан с помощью .render(). В результате получается объект pygame.Surface.
Если вы хотите, вы можете масштабировать поверхность до определенного размера, pygame.transform.smoothscale.
Наконец текст можно вывести на поверхность с помощью blit. например:

def Meteor(Meteorx, Meteory, Meteorw, Meteorh, colour):
    text = font.render('test text', False, colour)
    text = pygame.transform.smoothscale(text.convert(), (Meteorw, Meteorh))
    Screen.blit(text, (Meteorx, Meteory))

Как указано в комментарии ниже, проще использовать pygame.freetype. например:

import pygame.freetype

font = pygame.freetype.SysFont('Times New Roman', 30)
def Meteor(Meteorx, Meteory, Meteorw, Meteorh, colour):
    font.render_to(Screen, (Meteorx, Meteory), 'test text', colour, size=Meteorw)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...