Menu
CoddyTech

Una cuadrícula de celdas

Lección 19 de 41 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

Dibuja la cabeza de la serpiente en una cuadrícula de celdas.

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

Pulsa «Jugar»: hay una celda verde a la izquierda de la fila 9. Después, pulsa «Comprobar».

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 Crea juegos con Pygame

Practica por tu cuenta: Playground de Pygame