Menu
CoddyTech

Start, Stopp und Schrittweite

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

range akzeptiert bis zu drei Zahlen: range(start, stop, step).

  • range(5): 0, 1, 2, 3, 4
  • range(2, 6): 2, 3, 4, 5
  • range(60, 200, 40): 60, 100, 140, 180

Es beginnt beim Startwert, addiert jedes Mal den Schritt und stoppt, bevor es den Endwert erreicht. Der Endwert selbst ist nie im Bereich enthalten.

Mit einem Startwert und einem Schritt kann die Schleifenvariable direkt die Position sein, ohne dass eine Summe benötigt wird:

for x in range(60, 600, 40):
    pygame.draw.circle(screen, (255, 160, 60), (x, 420), 8)

Damit eine Zeile bei 580 endet, muss der Endwert darüber liegen: range(60, 580, 40) endet bei 540. Ein Schritt kann negativ sein, um rückwärts zu zählen: range(10, 0, -2) ergibt 10, 8, 6, 4, 2.

challenge icon

Aufgabe

Einfach

Zeichne unter den Sternen mit einer for-Schleife eine Reihe von Laternen:

  1. Orangefarbene Kreise mit dem Radius 8 bei y 420 und dem Farbwert (255, 160, 60).
  2. x von 60 bis 580, alle 40 Pixel: 14 Laternen.
  3. Verwende range mit einem Startwert, einem Endwert und einer Schrittweite und ersetze die einzelne Laterne.

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 die Dinge einmal pro Frame.

    screen.fill((20, 24, 48))
    # Zeichne hier, nachdem der Hintergrund gefüllt wurde.
    for i in range(8):
        pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)
    pygame.draw.circle(screen, (255, 160, 60), (60, 420), 8)

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

pygame.quit()

Alle Lektionen in Python in einem Spielfenster

Übe selbstständig: Pygame-Playground