Menu
CoddyTech

Mit den Pfeiltasten abbiegen

Lektion 21 von 40 im Kurs Spiele mit Pygame erstellen von Coddy.

Die Schlange dreht sich bei jedem Tastendruck einmal, lies daher die Pfeiltasten aus den KEYDOWN-Ereignissen aus. Ein Wörterbuch ordnet jeder Pfeiltaste ihre Richtung zu:

TURNS = {
    pygame.K_LEFT: (-1, 0),
    pygame.K_RIGHT: (1, 0),
    pygame.K_UP: (0, -1),
    pygame.K_DOWN: (0, 1),
}

event.key in TURNS ist für die vier Pfeiltasten wahr, und TURNS[event.key] ist die neue Richtung. Eine Prüfung ersetzt vier if-Anweisungen:

elif event.type == pygame.KEYDOWN and event.key in TURNS:
    direction = TURNS[event.key]

Oben ist (0, -1): Die Zeilen werden im Fenster abwärts gezählt, wie Pixel.

challenge icon

Aufgabe

Einfach
  1. Füge oberhalb von pygame.init() das Wörterbuch TURNS für die vier Pfeiltasten hinzu.
  2. Setze in der Ereignisschleife direction auf den zugehörigen Wert, wenn die Taste eines KEYDOWN-Ereignisses in TURNS enthalten ist.

Probier es selbst

import pygame

CELL = 20
COLS, ROWS = 24, 18

pygame.init()
screen = pygame.display.set_mode((COLS * CELL, ROWS * CELL))
pygame.display.set_caption("Snake")
clock = pygame.time.Clock()


def draw_cell(cell, color):
    col, row = cell
    pygame.draw.rect(screen, color, (col * CELL + 1, row * CELL + 1, CELL - 2, CELL - 2))


head = (5, 9)
direction = (1, 0)

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

    head = (head[0] + direction[0], head[1] + direction[1])

    screen.fill((30, 30, 46))
    draw_cell(head, (180, 255, 160))
    pygame.display.flip()
    clock.tick(10)

pygame.quit()
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Spiele mit Pygame erstellen

Übe selbstständig: Pygame-Playground