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.
Desafío
Fácil- Encima del bucle, escribe
draw_cell(cell, color), que dibuja una celda a 1 píxel de cada borde, como arriba. - Establece
head = (5, 9). - 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
1Serpiente
Una cuadrícula de celdasPaso a pasoPractica por tu cuenta: Playground de Pygame