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.
Aufgabe
Einfach- Füge oberhalb von
pygame.init()das WörterbuchTURNSfür die vier Pfeiltasten hinzu. - Setze in der Ereignisschleife
directionauf den zugehörigen Wert, wenn die Taste eines KEYDOWN-Ereignisses inTURNSenthalten 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()
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
3Raster und Listen
Ein Raster aus ZellenSchritt für SchrittÜbe selbstständig: Pygame-Playground