Menu
CoddyTech

Paso a paso

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

La serpiente siempre se mueve. Mantén la dirección en la que va en una dirección: cuántas celdas sumar a la columna y a la fila en cada paso.

  • (1, 0) es derecha, (-1, 0) es izquierda.
  • (0, 1) es abajo, (0, -1) es arriba.
direction = (1, 0)

while running:
    # eventos
    head = (head[0] + direction[0], head[1] + direction[1])

Una tupla no se puede cambiar, así que en cada paso se crea una nueva. El reloj funciona a clock.tick(10): diez fotogramas por segundo, así que la serpiente se mueve diez celdas por segundo.

challenge icon

Desafío

Fácil
  1. Antes del bucle, establece direction = (1, 0).
  2. En el bucle, después de los eventos, mueve la cabeza un paso en direction.

Por ahora, la serpiente sale de la ventana. Las paredes vendrán más adelante.

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


def draw_cell(cell, color):
    col, row = cell
    pygame.draw.rect(screen, color, (col * CELL + 1, row * CELL + 1, CELL - 2, CELL - 2))


head = (5, 9)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False


    screen.fill((30, 30, 46))
    draw_cell(head, (180, 255, 160))
    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