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 + 2Lies 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.
Aufgabe
EinfachLass 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
2Zahlen und Variablen
Einen Wert benennenRechnenJeden Frame bewegenWörter auf dem BildschirmGanze und halbe ZahlenÜbe selbstständig: Pygame-Playground