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).
Aufgabe
MittelFärbe den Mond je nach seiner Position ein. Füge im Änderungsteil nach den Tasten Folgendes hinzu:
- Wenn
moon_x < 200, setzecolourauf Orange(255, 170, 90). - Elif
moon_x < 440, setze ihn auf den üblichen Wert(240, 230, 160). - Andernfalls setze ihn auf Blau
(160, 190, 255). - 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
3If und Tasten
Am Rand auf die andere SeiteTasten bewegen den MondElif und ElseUnd, OderWahr oder FalschÜbe selbstständig: Pygame-Playground