El módulo `font` de Pygame es una herramienta fundamental para manejar texto en tus proyectos de videojuegos y aplicaciones interactivas. Te permite cargar fuentes, renderizar texto en la pantalla y ajustar su apariencia según tus necesidades.
En este post, te guiaré a través de las características clave del módulo `font`, sus funciones, y cómo puedes utilizarlo para agregar texto a tus proyectos de Pygame.
El módulo `font` de Pygame facilita el uso de fuentes y texto en la pantalla. Es parte de la biblioteca Pygame y ofrece diversas funciones para cargar fuentes, renderizar texto y manejar diferentes aspectos visuales de las fuentes, como el tamaño, el color y el anti-aliasing.
Antes de usar cualquier función relacionada con fuentes, es importante inicializar el módulo con:
pygame.font.init()
Alternativamente, puedes inicializar todo Pygame con `pygame.init()`, lo cual también inicializa el módulo `font`.
El objeto principal en el módulo `font` es `pygame.font.Font()`. Este objeto representa una fuente que puedes utilizar para renderizar texto.
fuente = pygame.font.Font(None, 36)
- Parámetros:
- `file`: La ruta a un archivo de fuente `.ttf` (TrueType Font). Si se establece en `None`, se usará la fuente predeterminada de Pygame.
- `size`: El tamaño de la fuente en píxeles.
Ejemplo:
# Usar la fuente predeterminada con un tamaño de 36 píxeles
fuente = pygame.font.Font(None, 36)
# Usar una fuente específica
fuente = pygame.font.Font('ruta/a/la/fuente.ttf', 36)
La función `render()` es utilizada para crear una imagen de texto que puedes dibujar en la pantalla. Devuelve una superficie (`Surface`) que contiene el texto renderizado.
superficie_del_texto = font.render(text, antialias, color, background=None)
- Parámetros:
- `text`: El texto que deseas renderizar.
- `antialias`: Un booleano que indica si se debe aplicar anti-aliasing (suavizado de bordes) al texto. `True` hace que el texto se vea más suave.
- `color`: Un tuple RGB que define el color del texto.
- `background`: Opcional. Un tuple RGB que define el color de fondo del texto. Si se omite, el fondo será transparente.
Ejemplo:
superficie_del_texto = font.render("Hola, Pygame!", True, (255, 255, 255))
Una vez que tienes el `Surface` que contiene tu texto renderizado, puedes dibujarlo en la pantalla usando el método `blit()` de display:
pantalla.blit(superficie_del_texto, (x, y))
Aquí `x` e `y` son las coordenadas donde quieres que aparezca el texto en la pantalla.
Ejemplo Completo:
import pygame
# Inicializar Pygame
pygame.init()
# Configurar la pantalla
pantalla = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Texto con Pygame")
# Configurar la fuente
mi_fuente = pygame.font.Font(None, 74)
# Crear una superficie con el texto
superficie_texto = mi_fuente.render("Hola, Pygame!", True, (255, 255, 255))
# Bucle principal
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
quit()
# Dibujar el texto en la pantalla
pantalla.blit(superficie_texto, (100, 100))
# Actualizar la pantalla
pygame.display.flip()
El objeto `Font` tiene varios métodos útiles que te permiten obtener información sobre la fuente que estás utilizando:
1. `get_height()`: Devuelve la altura en píxeles de la fuente.
altura = mi_fuente.get_height()
2. `get_ascent()`: Devuelve el ascenso (la altura desde la línea base hasta la parte superior de los caracteres).
ascenso = mi_fuente.get_ascent()
3. `get_descent()`: Devuelve el descenso (la distancia desde la línea base hasta la parte inferior de los caracteres).
descenso = mi_fuente.get_descent()
4. `size(text)`: Devuelve un tuple con el ancho y alto que ocupará el texto renderizado.
ancho_textoh, alto_texto = mi_fuente.size("Hola, Pygame!")
5. `metrics(text)`: Devuelve una lista de tuplas que contiene la métrica de cada carácter en el texto. La métrica incluye el avance horizontal, la altura del carácter, etc.
metricas = mi_fuente.metrics("Hola, Pygame!")
Pygame te permite listar todas las fuentes disponibles en tu sistema con la función `pygame.font.get_fonts()`. Esto puede ser útil si quieres ofrecer una selección de fuentes en tu juego.
fuentes_disponibles = pygame.font.get_fonts()
print(fuentes_disponibles)
1. `pygame.font.SysFont(name, size, bold=False, italic=False)`: Crea una fuente del sistema (preinstalada) con los parámetros especificados.
mi_fuente = pygame.font.SysFont("Arial", 36, bold=True, italic=True)
2. `pygame.font.match_font(name, bold=0, italic=0)`: Busca y devuelve la ruta a un archivo de fuente del sistema que coincide con los criterios especificados.
ruta_fuente = pygame.font.match_font("Arial", bold=True)
mi_fuente = pygame.font.Font(ruta_fuente, 36)
Puedes conocer todo el contenido que comparto en mi perfil de LinkedIn
Puedes descargar GRATIS mi manual completo en pdf de Python Rápido