Mostrar texto en Pygame

Maxim Maeder 21 junio 2023
  1. Importar la fuente en Pygame
  2. Mostrar el texto en Pygame
Mostrar texto en Pygame

Este tutorial te enseña cómo dibujar texto en Pygame.

El código que se muestra aquí no es el código completo para una ventana de Pygame válida. Si está interesado en un marco básico, consulte este artículo.

Importar la fuente en Pygame

Antes de que podamos escribir algo, necesitamos importar una fuente. Podemos hacer esto de dos maneras: o usamos pygame.font.SysFont(fontname, size) y proporcionamos el nombre de la fuente como se muestra en la carpeta de fuentes en Windows, o usamos pygame.font.Font(font_file_path, tamaño) donde necesitamos proporcionar la ruta de un archivo de fuente.

Primero llamamos a la función fuente en el ejemplo a continuación, pero luego sobrescribimos el objeto fuente con un objeto SysFont. La primera función no funcionará para usted a menos que tenga un archivo de fuente rocks en su directorio de trabajo actual.

# or Font File in Directory
font = pygame.font.Font("rocks.ttf", 30)

# System Font
font = pygame.font.SysFont("Garamond", 30)

Mostrar el texto en Pygame

Después de haber importado nuestra fuente, usamos el método render() en ella, y aquí podemos proporcionar algunas cosas interesantes.

  1. Primero, pasamos el texto que se va a escribir.
  2. Luego, le decimos si el texto debe ser suavizado.
  3. Por último, configuramos el color del texto en modo RGB. Tenga en cuenta que todo lo que hicimos fue antes del ciclo principal.
textsurface = font.render("Some Text", False, (200, 200, 200))

Ahora, en el bucle principal del juego, podemos llamar a la función blit en el objeto de pantalla y luego pasar la superficie de texto que acabamos de hacer con la posición deseada.

# keep in mind this code is in the main loop.
screen.blit(textsurface, (100, 100))

Código de ejemplo completo

# Imports
import sys
import pygame

# Configuration
pygame.init()
fps = 60
fpsClock = pygame.time.Clock()
width, height = 640, 480
screen = pygame.display.set_mode((width, height), pygame.RESIZABLE)

# or Font File in Directory
font = pygame.font.Font("rocks.ttf", 30)

# System Font
font = pygame.font.SysFont("Garamond", 30)

textsurface = font.render("Some Text", False, (200, 200, 200))

# Game loop.
while True:
    screen.fill((20, 20, 20))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    screen.blit(textsurface, (100, 100))

    pygame.display.flip()
    fpsClock.tick(fps)
Maxim Maeder avatar Maxim Maeder avatar

Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.

GitHub