Чтобы делать автоматические разрывы строк, мне пришлось использовать pygame.freetype.Font.Однако вывод из pygame.font.Font отличается от вывода из отображения pygame.Это мой код разрыва строки.
Afont = pygame.font.Font("fonts.ttf", 26)
Bfont = pygame.freetype.Font("fonts.ttf", 26)
def edit_text(text, font, x1, y1):
font.origin = True
words = text.split("")
width, height = display.get_size() #display = pygame.display.set_mode((1000, 500))
line_spacing = font.get_sized_height() + 2
x, y = x1, y1+line_spacing
space = font.get_rect("")
for word in words:
bounds = font.get_rect(word)
if x + bounds.width + bounds.x+17 >= width:
x, y = x1, y + line_spacing
if x + bounds.width + bounds.x+17 >= width:
raise ValueError("word too wide for the surface")
if y + bounds.height - bounds.y >= height:
raise ValueError("text to long for the surface")
font.render_to(display, (x, y), None, black)
x += bounds.width + space.width
return x, y
и, если я использую Afont, я получаю эту ошибку: AttributeError: у объекта 'pygame.font.Font' нет атрибута 'origin' Только я могу использовать шрифт freetype.. Зачем?И как я могу это исправить?