Sprinten
Lektion 6 von 41 im Kurs Spiele mit Pygame erstellen von Coddy.
Eine Variable kann sich in jedem Frame ändern, abhängig davon, was der Spieler tut. Hier hängt die Geschwindigkeit davon ab, ob die Leertaste gedrückt gehalten wird.
keys = pygame.key.get_pressed()
speed = 4
if keys[pygame.K_SPACE]:
speed = 8Jeder Frame beginnt mit der normalen Geschwindigkeit 4. Nur in einem Frame, in dem die Leertaste gedrückt ist, wird sie auf 8 erhöht. Lass die Leertaste los, und im nächsten Frame ist die Geschwindigkeit wieder 4.
Lege zuerst den normalen Wert fest und danach den besonderen. In der umgekehrten Reihenfolge hat die zweite Zeile immer Vorrang, und die Leertaste bewirkt nichts.
Aufgabe
EinfachLass die Spielfigur sprinten, solange die Leertaste gedrückt wird.
- Entferne
speed = 4oberhalb der Schleife. - Setze in der Schleife direkt nach
keys = pygame.key.get_pressed()speed = 4und setze den Wert dann auf8, wenn die Leertaste gedrückt wird.
Drücke „Spielen“ und halte die Leertaste zusammen mit einer Pfeiltaste gedrückt: Das Quadrat bewegt sich doppelt so schnell. Klicke dann auf „Prüfen“.
Probier es selbst
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()
x, y = 220, 160
speed = 4
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed
if keys[pygame.K_UP]:
y -= speed
if keys[pygame.K_DOWN]:
y += speed
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Alle Lektionen in Spiele mit Pygame erstellen
Übe selbstständig: Pygame-Playground