Menu
CoddyTech

Jeden Frame bewegen

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

Die Spielschleife läuft 60-mal pro Sekunde, daher wird eine Zeile im Abschnitt „Change things here“ einmal pro Frame ausgeführt. Verwende sie, um eine Variable jedes Mal ein wenig zu verändern:

comet_x = comet_x + 2

Lies es von rechts: Nimm den Wert in comet_x, addiere 2 und speichere das Ergebnis wieder in comet_x. Wenn der Wert 40 war, ist er jetzt 42. Im nächsten Frame wird er 44, dann 46.

Der Komet wird in jedem Frame bei comet_x gezeichnet, sodass ihn jeder Frame 2 Pixel weiter rechts zeigt: 120 Pixel pro Sekunde. So bewegt sich alles in einem Spiel: eine Zahl, die sich in jedem Frame ein wenig ändert.

comet_x = 40 steht im Setup-Abschnitt, in dem es einmal ausgeführt wird. Innerhalb der Schleife würde es den Kometen in jedem Frame wieder auf 40 setzen, und der Komet würde stillstehen.

Python hat eine Kurzform: comet_x += 2 macht dasselbe.

challenge icon

Aufgabe

Einfach

Lass den Kometen fliegen: Füge im Abschnitt # Change things here, once a frame. bei jedem Frame 2 zu comet_x hinzu, sodass er sich pro Frame 2 Pixel nach rechts bewegt.

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 = 160
moon_y = 120
comet_x = 40
comet_y = 200

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

    # Ändere hier die Werte, einmal pro Frame.

    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.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)

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

pygame.quit()

Alle Lektionen in Python in einem Spielfenster

Übe selbstständig: Pygame-Playground