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.
Aufgabe
EinfachErsetze 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
4Schleifen, die zeichnen
Mit For wiederholenStart, Stopp und SchrittweiteDie Schleifenvariable verwendenEine Schleife in einer SchleifeMit While zählenÜbe selbstständig: Pygame-Playground