Ein Raster aus Zellen
Teil des Abschnitts Projekte der Pygame-Journey von Coddy. Lektion 1 von 31.
Snake bewegt sich auf einem Raster. Das Fenster ist 24 Zellen breit und 18 Zellen hoch; jede Zelle ist 20 Pixel groß, und die Schlange bewegt sich immer um eine ganze Zelle weiter.
Arbeite mit Zellen und wandle sie nur zum Zeichnen in Pixel um. Die Zelle (col, row) beginnt beim Pixel (col * 20, row * 20). Wenn du jede Zelle 2 Pixel kleiner zeichnest und sie an jeder Seite um 1 Pixel einrückst, entsteht zwischen benachbarten Zellen ein dünner Abstand, sodass du die Segmente der Schlange sehen kannst.
def draw_cell(cell, color):
col, row = cell
pygame.draw.rect(screen, color, (col * CELL + 1, row * CELL + 1, CELL - 2, CELL - 2))col, row = cell entpackt das Tupel in zwei Variablen. Lege die Zahlen in Konstanten wie CELL, COLS und ROWS ab: Der Code macht deutlich, wofür sie stehen, und wenn du eine davon änderst, ändert sich das ganze Spiel.
Aufgabe
Einfach- Schreibe oberhalb der Schleife
draw_cell(cell, color), das eine Zelle wie oben 1 Pixel von jeder Seite nach innen zeichnet. - Setze
head = (5, 9). - Zeichne nach dem Füllen den Kopf mit
draw_cell(head, (180, 255, 160)).
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()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
pygame.display.flip()
clock.tick(10)
pygame.quit()
Alle Lektionen in Projekte
Übe selbstständig: Pygame-Playground