Menu
CoddyTech

Wahr oder Falsch

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

True und False sind eigenständige Werte, sogenannte Booleans. Eine Variable kann einen davon enthalten, wie bei einem Schalter:

lamp_on = False

Eine if-Anweisung kann den Wert direkt prüfen: if lamp_on: wird ausgeführt, wenn der Wert True ist. not kehrt ihn um, sodass lamp_on = not lamp_on die Lampe umschaltet.

Ein Schalter benötigt einen Tastendruck, keine gedrückt gehaltene Taste. get_pressed() ist in jedem Frame True, in dem die Taste gedrückt ist. Dadurch würde die Lampe 60-mal pro Sekunde umgeschaltet. Ein Tastendruck kommt nur einmal als KEYDOWN-Ereignis in der Ereignisschleife am Anfang der Spielschleife an:

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
    if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
        lamp_on = not lamp_on

Abschnitt 2 erklärt Ereignisse ausführlich. Vorläufig gilt: event.type gibt an, was passiert ist, und event.key, welche Taste.

challenge icon

Aufgabe

Mittel

Lass die Leertaste die Lampe umschalten:

  1. Setze im Einrichtungsteil lamp_on = False.
  2. Wenn in der Ereignisschleife ein KEYDOWN-Ereignis für K_SPACE eintrifft, setze lamp_on = not lamp_on.
  3. Zeichne das Licht bei (320, 290) mit Radius 30: (255, 220, 100), wenn lamp_on True ist, andernfalls (70, 70, 90).

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.
    pygame.draw.rect(screen, (90, 90, 110), (310, 300, 20, 180))
    pygame.draw.circle(screen, (70, 70, 90), (320, 290), 30)

    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