The font-name needs to be adjusted according to the operating system, otherwise only a question mark is shown in the window.
import pygame
import sys
import time
# Pygame initialisieren
pygame.init()
# Fenstergröße
WIDTH, HEIGHT = 640, 480
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Emoji-Text-Matching")
# Farben
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
BLUE = (0, 0, 255)
# Schriftarten (mit Unicode-Unterstützung)
# font_large = pygame.font.SysFont("Segoe UI Emoji", 120) # Für Emoji Windows
font_large = pygame.font.SysFont("Noto Color Emoji", 150) # Für Emoji Linux
font_small = pygame.font.SysFont("Arial", 30) # Für Text
# Emoji-Text-Paare (20 Einträge)
pairs = [
("🐶", "Hund"),
("🐱", "Katze"),
("🐭", "Maus"),
("🐹", "Hamster"),
("🐰", "Hase"),
("🦊", "Fuchs"),
("🐻", "Bär"),
("🐼", "Panda"),
("🐨", "Koala"),
("🐯", "Tiger"),
("🦁", "Löwe"),
("🐮", "Kuh"),
("🐷", "Schwein"),
("🐸", "Frosch"),
("🐵", "Affe"),
("🐒", "Affe2"),
("🐺", "Wolf"),
("🐗", "Wildschwein"),
("🦊", "Fuchs"),
("🐝", "Biene"),
("🐛", "Raupe"),
("🔪", "Messer"),
("🔦", "Taschenlampe"),
]
# Position für Emoji und Text (zentriert)
emoji_x, emoji_y = WIDTH // 2, HEIGHT // 3
text_x, text_y = WIDTH // 2, emoji_y + 150
# Hauptspielschleife
def main():
clock = pygame.time.Clock()
running = True
current_pair_index = 0
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Hintergrund
screen.fill(WHITE)
# Aktuelles Paar anzeigen
if current_pair_index < len(pairs):
emoji, text = pairs[current_pair_index]
# Emoji groß anzeigen
emoji_surface = font_large.render(emoji, True, BLACK)
emoji_rect = emoji_surface.get_rect(center=(emoji_x, emoji_y))
screen.blit(emoji_surface, emoji_rect)
# Text darunter
text_surface = font_small.render(text, True, BLUE)
text_rect = text_surface.get_rect(center=(text_x, text_y))
screen.blit(text_surface, text_rect)
# Nächstes Paar nach 1 Sekunde
time.sleep(1)
current_pair_index += 1
else:
# Alle Paare gezeigt: Beenden oder neu starten
font_done = pygame.font.SysFont("Arial", 40)
done_text = font_done.render("Alle Paare gezeigt!", True, BLACK)
done_rect = done_text.get_rect(center=(WIDTH // 2, HEIGHT // 2))
screen.blit(done_text, done_rect)
# Aktualisieren des Displays
pygame.display.flip()
clock.tick(30)
pygame.quit()
sys.exit()
if __name__ == "__main__":
main()