Menu
CoddyTech

Mit For wiederholen

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

Eine for-Schleife wiederholt ihre Zeilen für jeden Wert, den sie erhält, einmal:

for i in range(8):
    pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)

range(8) liefert die Zahlen 0, 1, 2 und so weiter bis 7: acht Zahlen, beginnend bei 0 und endend vor 8. Die Schleife speichert nacheinander jede Zahl in i und führt die eingerückten Zeilen aus. Der erste Stern befindet sich also bei x 40, der nächste bei 120, dann bei 200 und so weiter bis 600.

Die eingerückten Zeilen bilden den Rumpf der Schleife, wie bei einem if. Die erste Zeile nach dem Rumpf, wieder auf der äußeren Einrückungsebene, wird ausgeführt, sobald die Schleife beendet ist.

Diese Schleife befindet sich im Zeichenteil der Spielschleife, daher werden alle acht Sterne in jedem Frame erneut gezeichnet. Sie ist kurz und wird sofort abgeschlossen, sodass der Frame weiterhin rechtzeitig endet.

i ist ein geläufiger Name für eine Zählvariable, aber jeder Name funktioniert: for n in range(8): zählt genauso.

challenge icon

Aufgabe

Einfach

Ersetze den einzelnen Stern durch eine for-Schleife über range(8), die 8 weiße Sterne mit einem Radius von 5 bei (40 + i * 80, 80) zeichnet.

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.

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

    # Ändere hier Dinge, einmal pro Frame.

    screen.fill((20, 24, 48))
    # Zeichne hier, nachdem der Bildschirm gefüllt wurde.
    pygame.draw.circle(screen, (255, 255, 255), (40, 80), 5)

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

pygame.quit()

Alle Lektionen in Python in einem Spielfenster

Übe selbstständig: Pygame-Playground