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.
- Zuerst übergeben wir den zu schreibenden Text.
- Dann teilen wir ihm mit, ob der Text geglättet werden soll.
- 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)
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