Text in Pygame anzeigen

Maxim Maeder 21 Juni 2023
  1. Importieren Sie die Schriftart in Pygame
  2. Zeigen Sie den Text in Pygame an
Text in Pygame anzeigen

In diesem Tutorial lernen Sie, wie Sie Text in Pygame zeichnen.

Der hier angezeigte Code ist nicht der vollständige Code für ein gültiges Pygame-Fenster. Wenn Sie an einem Bare-Bones-Framework interessiert sind, lesen Sie diesen Artikel.

Importieren Sie die Schriftart in Pygame

Bevor wir etwas schreiben können, müssen wir eine Schriftart importieren. Wir können dies auf zwei Arten tun: entweder verwenden wir pygame.font.SysFont(fontname, size) und liefern den Namen der Schriftart, wie er im Schriftartenordner von Windows angezeigt wird, oder wir verwenden pygame.font.Font(font_file_path, size), wo wir den Pfad einer Schriftdatei angeben müssen.

Wir rufen im Beispiel unten zuerst die Funktion font auf, überschreiben dann aber das font-Objekt mit einem SysFont-Objekt. Die erste Funktion wird für Sie nicht funktionieren, es sei denn, Sie haben eine Schriftdatei rocks in Ihrem aktuellen Arbeitsverzeichnis.

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

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

Zeigen Sie den Text in Pygame an

Nachdem wir unsere Schriftart importiert haben, wenden wir die Methode render() darauf an, und hier können wir einige interessante Dinge liefern.

  1. Zuerst übergeben wir den zu schreibenden Text.
  2. Dann teilen wir ihm mit, ob der Text geglättet werden soll.
  3. Zuletzt stellen wir die Textfarbe RGB ein. Denken Sie daran, dass alles, was wir getan haben, vor der Hauptschleife war.
textsurface = font.render("Some Text", False, (200, 200, 200))

Jetzt können wir in der Hauptspielschleife die Funktion blit auf dem Bildschirmobjekt aufrufen und dann die soeben erstellte Textoberfläche mit der gewünschten Position übergeben.

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

Vollständiger Beispielcode

# 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