Tasten bewegen den Mond
Teil des Abschnitts Python in einem Spielfenster der Pygame-Journey von Coddy. Lektion 11 von 32.
pygame.key.get_pressed() teilt dir mit, welche Tasten in diesem Frame gedrückt gehalten werden. Speichere das Ergebnis einmal pro Frame und frage es dann nach einer Taste ab:
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
moon_x = moon_x - 4
if keys[pygame.K_RIGHT]:
moon_x = moon_x + 4keys[pygame.K_LEFT] ist True, solange die linke Pfeiltaste gedrückt gehalten wird, und andernfalls False, sodass das darunterstehende if in jedem Frame ausgeführt wird, in dem die Taste gedrückt ist. Halte die rechte Pfeiltaste eine Sekunde lang gedrückt, und der Mond bewegt sich um 240 Pixel.
Jede Taste hat einen Namen: K_UP, K_DOWN, K_SPACE, K_a für A, K_d für D.
Verwende zwei separate if-Anweisungen, eine pro Taste, damit jede Taste für sich geprüft wird. Die if-Anweisungen gehören in den Änderungsteil, nach der Ereignisschleife.
Aufgabe
EinfachBewege den Mond mit den Pfeiltasten:
- Lies im Änderungsteil die Tasten mit
keys = pygame.key.get_pressed()aus. - Wenn die linke Pfeiltaste gedrückt gehalten wird, ziehe 4 von
moon_xab. - Wenn die rechte Pfeiltaste gedrückt gehalten wird, addiere 4 zu
moon_x.
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.
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