Геймдев и графика

Учебник Игры на Python с Pygame для начинающих

24 урока · 6 разделов · бесплатно, без регистрации

Полный практический курс по созданию 2D-игр на Python с библиотекой Pygame (современная pygame-ce). Ты пройдёшь путь от пустого окна до готовой аркады: освоишь игровой цикл, рисование спрайтов, движение через векторы, коллизии и гравитацию, звук, счёт, уровни и простой ИИ врагов.

Главная фишка курса — игровая логика подаётся как математика, которую можно проверить прямо в браузере без установки Pygame: коллизии, физика прыжка, ИИ и генерация уровней запускаются как обычный Python. Графический код Pygame ты увидишь рядом и поймёшь, как соединить одно с другим.

Курс «Игры на Python с Pygame» состоит из 6 разделов и 24 уроков: Введение и игровой цикл, Графика и спрайты, Движение и управление, Коллизии и физика, Звук, счёт и уровни и Собираем игру целиком. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Введение и игровой цикл

    1. Что такое игровой цикл

      Игровой цикл в Pygame: события, обновление, отрисовка и кадр — сердце любой 2D-игры на Python.

    2. Окно и система координат

      Окно Pygame и система координат: начало в левом верхнем углу, ось Y направлена вниз, центр через WIDTH//2.

    3. Установка и первое окно

      Установка pygame-ce через pip и первое рабочее окно с обработкой событий QUIT и ESC.

    4. Время и FPS: delta time

      Delta time (dt) в Pygame: движение, не зависящее от частоты кадров. Скорость в пикселях в секунду умножаем на dt.

  2. 2 Графика и спрайты

    1. Рисуем фигуры: rect, circle, line

      Примитивы pygame.draw: прямоугольник, круг и линия. Прототипирование игры серыми коробками.

    2. Rect — главный кубик игры

      pygame.Rect: позиция, размер и удобные свойства center, right, bottom, а также проверка столкновений colliderect.

    3. Загрузка картинок и blit

      Загрузка изображений в Pygame: image.load, convert_alpha для прозрачности и отрисовка через screen.blit.

    4. Спрайты и группы

      pygame.sprite.Sprite и Group: классы объектов с image и rect, групповое обновление и отрисовка, kill().

  3. 3 Движение и управление

    1. Клавиатура: события и состояние

      Два способа чтения клавиатуры в Pygame: события KEYDOWN для действий и key.get_pressed для движения.

    2. Вектор движения и скорость

      Вектор скорости (vx, vy) и Vector2 в Pygame: позиция меняется на скорость умножить на dt.

    3. Мышь: прицел и выстрел

      Мышь в Pygame: get_pos и MOUSEBUTTONDOWN. Выстрел в курсор через нормализованный вектор направления.

    4. Ускорение, скорость и трение

      Инерционное движение в Pygame: ускорение меняет скорость, скорость меняет позицию, трение тормозит.

  4. 4 Коллизии и физика

    1. AABB: столкновение прямоугольников

      AABB-коллизия в Pygame: два прямоугольника сталкиваются, если перекрываются и по X, и по Y. colliderect.

    2. Коллизии спрайтов и групп

      spritecollide и groupcollide в Pygame: коллизии спрайта с группой и группы с группой, флаг dokill.

    3. Гравитация и прыжок

      Гравитация и прыжок в Pygame: постоянное ускорение вниз, отрицательная стартовая скорость прыжка, обнуление на земле.

    4. Разрешение коллизий по осям

      Разрешение коллизий в Pygame: раздельное движение по X и Y, выдвижение героя к грани стены по направлению.

  5. 5 Звук, счёт и уровни

    1. Звук и музыка

      Звук в Pygame: короткие эффекты через mixer.Sound и фоновая музыка через mixer.music со стримингом.

    2. Текст и счёт на экране

      Текст в Pygame: font.render превращает строку в картинку, blit рисует её. Вывод счёта, жизней и таймера.

    3. Очки, жизни и конец игры

      Игровое состояние в Pygame: score, lives, game_over. Подсчёт очков, потеря жизней и условия победы и поражения.

    4. Уровни и процедурная генерация

      Уровни в Pygame: текстовые карты и процедурная генерация. Описываем уровень данными, строим объекты кодом.

  6. 6 Собираем игру целиком

    1. Состояния игры: меню, пауза, конец

      Машина состояний в Pygame: меню, игра, пауза, game over. Одна переменная state и переходы по событиям.

    2. Простой ИИ врагов

      ИИ врагов в Pygame: патруль, преследование и атака по порогам расстояния до игрока. Чистая логика без нейросетей.

    3. Собираем игру целиком

      Архитектура готовой игры на Pygame: состояния, игровой цикл, спрайт-группы, коллизии и HUD складываются вместе.

    4. Полировка, оптимизация и шеринг

      Финальные штрихи игры на Pygame: джус (анимации, тряска экрана), оптимизация и упаковка в exe через PyInstaller.

py
Курс по теме
Пройдите курс «Python с нуля» — по шагам, с проверкой
8 уроков · ~14 ч · теория, упражнения и экзамен с бейджем
Открыть курс →