Menu
CoddyTech

Elif und Else

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

else fügt einem if einen zweiten Zweig hinzu, der ausgeführt wird, wenn die Bedingung falsch ist. elif, die Kurzform von „else if“, fügt weitere Bedingungen dazwischen ein:

if moon_x < 200:
    colour = (255, 170, 90)
elif moon_x < 440:
    colour = (240, 230, 160)
else:
    colour = (160, 190, 255)

Python prüft die Bedingungen von oben nach unten, führt den ersten Zweig aus, dessen Bedingung wahr ist, und überspringt den Rest. Bei x 100 sind die ersten beiden Bedingungen wahr, aber nur der erste Zweig wird ausgeführt. else hat keine Bedingung: Es wird ausgeführt, wenn keine der Bedingungen darüber wahr war.

Separate if-Anweisungen funktionieren anders: Jede einzelne wird geprüft. Bei drei if-Anweisungen würde ein Mond bei x 100 zuerst orange werden und dann vom zweiten Zweig wieder gelb gefärbt werden.

Hier ist colour eine Variable, die ein Tupel enthält. Zeichne damit: pygame.draw.circle(screen, colour, (moon_x, moon_y), 50).

challenge icon

Aufgabe

Mittel

Färbe den Mond je nach seiner Position ein. Füge im Änderungsteil nach den Tasten Folgendes hinzu:

  1. Wenn moon_x < 200, setze colour auf Orange (255, 170, 90).
  2. Elif moon_x < 440, setze ihn auf den üblichen Wert (240, 230, 160).
  3. Andernfalls setze ihn auf Blau (160, 190, 255).
  4. Zeichne den Mond mit colour.

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.
moon_x = 320
moon_y = 240

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

    # Ändere hier die Werte einmal pro Frame.
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        moon_x = moon_x - 4
    if keys[pygame.K_RIGHT]:
        moon_x = moon_x + 4

    screen.fill((20, 24, 48))
    # Zeichne hier, nachdem der Bildschirm gefüllt wurde.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)

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

pygame.quit()

Alle Lektionen in Python in einem Spielfenster

Übe selbstständig: Pygame-Playground