Menu
CoddyTech

Zähle die Sterne

Teil des Abschnitts Python in einem Spielfenster der Pygame-Journey von Coddy. Lektion 31 von 32.

Der Spieler muss wissen, wie nah der Himmel daran ist, vollständig gefüllt zu sein. Zeige die Anzahl von zwanzig in der oberen linken Ecke an:

text = font.render(f"Stars: {len(stars)}/20", True, (230, 230, 240))
screen.blit(text, (20, 20))

Der f-String kombiniert einen Wert, len(stars), mit einfachem Text, /20. Bei sieben Sternen wird Stars: 7/20 angezeigt.

Erstelle die Schriftart im Setup-Teil neben stars = []. Beim Erstellen einer Schriftart wird sie geladen, was Zeit kostet, also mach das einmal. Das Rendern des Textes ist günstig und erfolgt in jedem Frame, sodass die Anzahl immer aktuell ist.

Zeichne die Beschriftung zuletzt im Zeichenteil, damit kein Stern sie verdecken kann.

challenge icon

Aufgabe

Einfach

Zeige die Anzahl an:

  1. Erstelle im Setup-Teil font = pygame.font.Font(None, 36).
  2. Rendere am Ende des Zeichenteils f"Stars: {len(stars)}/20" in (230, 230, 240) und blitte es bei (20, 20).

Probier es selbst

import random
import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Richte hier alles ein, bevor die Spielschleife beginnt.
stars = []

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        if event.type == pygame.MOUSEBUTTONDOWN:
            stars.append(event.pos)

    # Ändere hier Dinge einmal pro Frame.

    screen.fill((20, 24, 48))
    # Zeichne hier, nachdem der Hintergrund gefüllt wurde.
    pygame.draw.circle(screen, (240, 230, 160), (560, 80), 40)
    pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))
    for star in stars:
        colour = (255, 255, 255)
        if random.randint(1, 30) == 1:
            colour = (110, 120, 170)
        pygame.draw.circle(screen, colour, star, 3)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Alle Lektionen in Python in einem Spielfenster

Übe selbstständig: Pygame-Playground