Menu
CoddyTech

Mehrfach aufrufen

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

Rufe eine Funktion in einer Schleife auf, und sie zeichnet ein Muster. Die Schleife berechnet die Argumente, die Funktion übernimmt das Zeichnen:

for i in range(8):
    draw_star(60 + i * 70, 60 + i * 45)

Bei jedem Durchlauf liegt der Stern 70 Pixel weiter rechts und 45 Pixel tiefer als der vorherige, sodass die Sterne in einer Linie von (60, 60) bis (550, 375) verlaufen. Ändere 70 oder 45, und jeder Stern folgt dieser Änderung.

Deshalb lohnt es sich, Funktionen zu schreiben. Die Zeilen, die einen Stern zeichnen, gibt es nur einmal. Wenn du ändern möchtest, wie jeder Stern aussieht – längere Strahlen oder eine andere Farbe –, änderst du den Funktionskörper, und jeder Aufruf zeichnet den neuen Stern.

Benenne eine Funktion nach dem, was sie tut, oft mit einem Verb: draw_star, move_comet, reset_game. Dann liest sich eine Zeile, die sie aufruft, wie ein Satz.

challenge icon

Aufgabe

Einfach

Zeichne eine Reihe von Sternen: Ersetze den einzelnen Aufruf durch for i in range(8):, der draw_star(60 + i * 70, 60 + i * 45) aufruft. Die 8 Sterne reichen von (60, 60) bis (550, 375).

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.
def draw_star(x, y):
    pygame.draw.line(screen, (255, 240, 200), (x - 10, y), (x + 10, y), 2)
    pygame.draw.line(screen, (255, 240, 200), (x, y - 10), (x, y + 10), 2)
    pygame.draw.circle(screen, (255, 240, 200), (x, y), 4)

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.
    draw_star(60, 60)

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

pygame.quit()
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Python in einem Spielfenster

Übe selbstständig: Pygame-Playground