Menu
CoddyTech

Ein Raster aus Zellen

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

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 bei Pixel (col * 20, row * 20). Wenn du jede Zelle 2 Pixel kleiner zeichnest und auf jeder Seite 1 Pixel Abstand lässt, entsteht eine schmale Lücke zwischen den Nachbarzellen, 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. Bewahre die Zahlen in Konstanten wie CELL, COLS und ROWS auf: Der Code erklärt ihre Bedeutung, 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 beschrieben mit einem Abstand von 1 Pixel zu jeder Seite 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()
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