8.5 Tekst op het scherm
In coderius-play maakte je tekst met play.new_text(). In pygame-ce gebruik je pygame.font.
Tekst tonen
import pygame
pygame.init()
scherm = pygame.display.set_mode((800, 600))
font = pygame.font.SysFont("arial", 40)
actief = True
while actief:
for event in pygame.event.get():
if event.type == pygame.QUIT:
actief = False
scherm.fill((30, 30, 30))
tekst = font.render("Hallo!", True, (255, 255, 255))
scherm.blit(tekst, (350, 280))
pygame.display.flip()
pygame.quit()
Wat gebeurt hier?
font = pygame.font.SysFont("arial", 40)
Maakt een font aan. "arial" is het lettertype, 40 is de grootte.
tekst = font.render("Hallo!", True, (255, 255, 255))
Maakt een afbeelding van de tekst. True zorgt voor vloeiende randen, (255, 255, 255) is de kleur (wit).
scherm.blit(tekst, (350, 280))
Plaatst de tekst op positie (350, 280) op het scherm.
Opdracht 8.5.a: Je eigen tekst
Toon je eigen naam op het scherm in een kleur naar keuze.
Klik hier voor de oplossing!
import pygame
pygame.init()
scherm = pygame.display.set_mode((800, 600))
font = pygame.font.SysFont("arial", 50)
actief = True
while actief:
for event in pygame.event.get():
if event.type == pygame.QUIT:
actief = False
scherm.fill((30, 30, 30))
tekst = font.render("Jouw Naam", True, (0, 255, 100))
scherm.blit(tekst, (300, 280))
pygame.display.flip()
pygame.quit()
Opdracht 8.5.b: Meerdere teksten
Toon twee regels tekst op het scherm: een titel bovenaan en een ondertitel daaronder. Gebruik verschillende groottes.
Klik hier voor een tip!
Maak twee fonts aan met verschillende groottes, bijvoorbeeld 60 voor de titel en 30 voor de ondertitel. Gebruik blit op verschillende y-posities.
Klik hier voor de oplossing!
import pygame
pygame.init()
scherm = pygame.display.set_mode((800, 600))
groot_font = pygame.font.SysFont("arial", 60)
klein_font = pygame.font.SysFont("arial", 30)
actief = True
while actief:
for event in pygame.event.get():
if event.type == pygame.QUIT:
actief = False
scherm.fill((30, 30, 30))
titel = groot_font.render("Mijn Spel", True, (255, 255, 0))
scherm.blit(titel, (280, 200))
ondertitel = klein_font.render("Druk op een toets om te starten", True, (200, 200, 200))
scherm.blit(ondertitel, (220, 300))
pygame.display.flip()
pygame.quit()