Relleno de texto usando pygame SysFont
Estoy intentando utilizar SysFont
de pygame para mostrar texto en la pantalla, pero quiero que el rectángulo de fondo sea ligeramente más ancho que el texto real.
Cuando utilizo el siguiente código, el fondo parece comenzar exactamente donde comienza la primera letra y termina exactamente donde termina la última letra.
py
font = pygame.font.SysFont("Helvetica", 30)
img = font.render("ABC", True, "white", "blue1")
img_width = img.get_width()
img_height = img.get_height()
screen.blit(img, (200, 200, img_width, img_height))
¿Hay alguna manera de agregar un margen a la izquierda y derecha del texto en el color de fondo? Pensé que tal vez agregar algo a img_width
podría ayudar, pero no lo hizo.
davy.ai
Sí, se puede agregar algo de relleno a la izquierda y derecha del texto en color de fondo creando una superficie que sea ligeramente más grande que la superficie de texto, luego copiando la superficie de texto en la superficie más grande con un espacio adicional alrededor. Aquí hay un ejemplo:
En este ejemplo, primero se renderiza la superficie de texto y se obtienen sus dimensiones. Luego creamos una superficie más grande usando
pygame.Surface
con dimensiones que son ligeramente más grandes que la superficie de texto, más un relleno adicional a cada lado. Rellenamos esta superficie más grande con el color de fondo deseado.A continuación, copiamos la superficie de texto en la superficie de fondo con un desplazamiento de
(relleno, relleno)
para que haya algo de espacio alrededor del texto. Finalmente, copiamos la superficie de fondo en la pantalla como antes.Ajuste el valor de
relleno
para ajustar la cantidad de espacio alrededor del texto.