🎮 Все игры 🐍 Змейка
1 2 3 4 5 6 7
Урок 2

Квадрат на сетке

Что ты увидишь Один зелёный квадрат на тёмном фоне. Файл: step2_square.py
⬇️ Скачать код урока

🔍 Сначала разберёмся: клетки и пиксели

Экран измеряется в пикселях — крошечных точках. Но думать об игре в пикселях неудобно. Поэтому мы делим поле на клетки, как тетрадь в клеточку. Одна клетка у нас 20 пикселей:

CELL = 20          # размер одной клетки
COLS = 30          # 30 клеток в ширину
ROWS = 20          # 20 клеток в высоту

Змейка «думает» в клетках: квадрат стоит в клетке (5, 10) — это колонка 5, строка 10. А рисовать надо в пикселях. Чтобы перевести клетку в пиксели — умножаем на размер клетки:

клетка (0, 0) → пиксель (0, 0) клетка (1, 0) → пиксель (20, 0) ← 1 × 20 клетка (5, 10) → пиксель (100, 200) ← 5 × 20 и 10 × 20
💡 Запомни это навсегда Клетки — для логики игры. Пиксели — для рисования. Мостик между ними — умножение на CELL.

📝 Код урока (только новое)

# Координаты квадрата В КЛЕТКАХ (не в пикселях!)
x = 5
y = 10

while True:
    # ... события и screen.fill(BLACK) как в уроке 1 ...

    # Превращаем клетки в пиксели: умножаем на размер клетки
    rect = pygame.Rect(x * CELL, y * CELL, CELL, CELL)
    pygame.draw.rect(screen, GREEN, rect)

    pygame.display.flip()
    clock.tick(60)

🔍 Что такое Rect

Rect (от английского rectangle — прямоугольник) — это рамка, которая говорит pygame где и какого размера нарисовать квадрат. У неё ровно четыре числа:

pygame.Rect(  x,        y,        ширина,  высота )
pygame.Rect( x*CELL,   y*CELL,   CELL,    CELL  )
ЧислоЧто значитДля клетки (5, 10)
x * CELLлевый край в пикселях5 × 20 = 100
y * CELLверхний край в пикселях10 × 20 = 200
CELLширина20
CELLвысота20

А рисует квадрат уже следующая строка:

pygame.draw.rect(screen, GREEN, rect)
#            куда     цвет   рамка
🎮 Попробуй сам 1. Поставь квадрат в угол: x = 0, y = 0.
2. Поставь в правый нижний угол. Подсказка: последняя колонка — это COLS - 1, последняя строка — ROWS - 1.
3. Сделай клетку крупнее: CELL = 40. Что изменилось?
← НазадУрок 1 — Окно