Menu
CoddyTech
flag Ru iconРусскийdown icon

Шаг за шагом

Урок 20 из 40 курса Создавай игры на Pygame на Coddy.

Змея постоянно движется. Задай направление её движения: на сколько клеток изменяются столбец и строка на каждом шаге.

  • (1, 0) — вправо, (-1, 0) — влево.
  • (0, 1) — вниз, (0, -1) — вверх.
direction = (1, 0)

while running:
    # события
    head = (head[0] + direction[0], head[1] + direction[1])

Кортеж нельзя изменить, поэтому на каждом шаге создаётся новый. Часы работают с частотой clock.tick(10): десять кадров в секунду, поэтому змея перемещается на десять клеток в секунду.

challenge icon

Задание

Легко
  1. Перед циклом задайте direction = (1, 0).
  2. В цикле после обработки событий переместите голову на один шаг в направлении direction.

Пока змейка покидает окно. Стены появятся позже.

Попробуйте сами

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 iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Создавай игры на Pygame

Потренируйтесь самостоятельно: Песочница Pygame