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.
- Primero, pasamos el texto que se va a escribir.
- Luego, le decimos si el texto debe ser suavizado.
- 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)
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