Menu
CoddyTech

Una cuadrícula de celdas

Parte de la sección Proyectos del Journey de Pygame de Coddy. Lección 1 de 31.

Snake se mueve en una cuadrícula. La ventana tiene 24 columnas por 18 filas de celdas, cada una de 20 píxeles cuadrados, y la serpiente avanza una celda completa a la vez.

Trabaja con celdas y conviértelas en píxeles solo para dibujar. La celda (col, row) empieza en el píxel (col * 20, row * 20). Dibujar cada celda con 2 píxeles menos, a 1 píxel de cada borde, deja un pequeño espacio entre las celdas vecinas para que puedas ver los segmentos de la serpiente.

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 desempaqueta la tupla en dos variables. Mantén los números en constantes como CELL, COLS y ROWS: el código indica qué significan, y cambiar uno modifica todo el juego.

challenge icon

Desafío

Fácil
  1. Encima del bucle, escribe draw_cell(cell, color), que dibuja una celda a 1 píxel de cada borde, como arriba.
  2. Establece head = (5, 9).
  3. Después del relleno, dibuja la cabeza con draw_cell(head, (180, 255, 160)).

Pruébalo tú mismo

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()

Todas las lecciones de Proyectos

Practica por tu cuenta: Playground de Pygame