Todo lo que Necesitas Saber sobre el Módulo `font` de Pygame

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.



Introducción al Módulo `font`

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`.



Crear un Objeto de Fuente: `pygame.font.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)



Renderizar Texto: `render()`

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))



Dibujar Texto en la Pantalla

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()



Obtener Información sobre la Fuente

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!")



Listar las Fuentes Disponibles

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)



Otras Funciones Útiles

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)



Hay mucho más contenido sobre Python para ti

Puedes conocer todo el contenido que comparto en mi perfil de LinkedIn

 

Puedes descargar GRATIS mi manual completo en pdf de Python Rápido


image


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.