Menu
CoddyTech

Una cuadrícula de celdas

Lección 19 de 40 del curso Crea juegos con Pygame de Coddy.

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 se mueve 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 2 píxeles más pequeña, a 1 píxel de cada lado, deja un espacio fino 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 una 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 antes.
  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()
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Crea juegos con Pygame

Practica por tu cuenta: Playground de Pygame