Menu
CoddyTech

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 = 8

Jeder 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.

challenge icon

Aufgabe

Einfach

Lass die Spielfigur sprinten, solange die Leertaste gedrückt wird.

  1. Entferne speed = 4 oberhalb der Schleife.
  2. Setze in der Schleife direkt nach keys = pygame.key.get_pressed() speed = 4 und setze den Wert dann auf 8, 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