Ga naar hoofdinhoud

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()