Mit len zählen
Teil des Abschnitts Python in einem Spielfenster der Pygame-Journey von Coddy. Lektion 26 von 32.
len(stars) gibt an, wie viele Elemente die Liste enthält. Eine leere Liste hat die Länge 0. Verwende es, um eine Anzahl anzuzeigen:
text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))Ein f-String kann jeden Ausdruck in seinen geschweiften Klammern enthalten, auch einen Funktionsaufruf.
len kann auch eine Obergrenze festlegen. Füge einen Stern nur hinzu, solange noch Platz ist:
if event.type == pygame.MOUSEBUTTONDOWN and len(stars) < 10:
stars.append(event.pos)Sobald die Liste 10 Sterne enthält, ist die Bedingung falsch, sodass Klicks nichts bewirken. Die Anzahl auf dem Bildschirm und die Obergrenze beziehen sich auf dieselbe Liste und stimmen daher immer überein.
Die Obergrenze steht in der Ereignisschleife und ist mit and an die Klickprüfung geknüpft: Das Anhängen wird nur ausgeführt, wenn es sich um einen Klick handelt und noch Platz ist. len funktioniert auch mit Zeichenketten: len("Night") ist 5.
Aufgabe
MittelZähle die Sterne und höre bei zehn auf:
- Erstelle im Setup-Teil
font = pygame.font.Font(None, 36). - Zeige im Zeichenteil
f"Stars: {len(stars)}"in(230, 230, 240)bei (20, 20) an. - Füge bei einem Klick nur dann einen Stern hinzu, wenn
len(stars) < 10.
Probier es selbst
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 in jedem Frame die nötigen Dinge.
screen.fill((20, 24, 48))
# Zeichne hier, nachdem der Bildschirm gefüllt wurde.
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Alle Lektionen in Python in einem Spielfenster
3If und Tasten
Am Rand auf die andere SeiteTasten bewegen den MondElif und ElseUnd, OderWahr oder Falsch6Listen von Dingen
Eine Liste von SternenKlicken zum HinzufügenMit len zählenEinen Stern entfernenZufallszahlenÜbe selbstständig: Pygame-Playground