Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach
  1. Schreibe oberhalb der Schleife draw_cell(cell, color), das eine Zelle wie oben 1 Pixel von jeder Seite nach innen zeichnet.
  2. Setze head = (5, 9).
  3. 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