Pygame. Введение в разработку игр на Python. Курс

Курс "Pygame. Введение в разработку игр на Python" знакомит с базовыми особенностями программирования игр и основными возможностями библиотеки Pygame.

Необходимый предварительный минимум для успешного освоения курса – знание структурного (условия, циклы, функции) и объектно-ориентированного программирования на Python. Желательно хотя бы поверхностное знакомство с программированием приложений с графическим интерфейсом пользователя.

В данном курсе акцент сделан на изучение основных функций и классов библиотеки Pygame, а не на разработку конечных игр. Основные цели курса – познакомиться с особенностями программирования игр и научиться понимать код, использующий Pygame. В последующем это позволит самостоятельно разбирать и понимать длинные примеры написанных на Python и Pygame игр, которых достаточно много в Интернете.

Курс не включает полное описание библиотеки, не дублирует документацию. Вместо этого шаг за шагом, от простого к сложному рассматриваются назначение и принцип работы основных компонентов библиотеки Pygame в приложении к разработке тех или иных элементов компьютерной игры.

Курс состоит из двенадцати уроков, 11 из которых включают практическую работу. Первый урок-лекция дает общее представление о разработке игр и Pygame.

Версия курса: Июль, 2025 г.

Содержание курса

Pygame и разработка игр. Установка

input

Pygame - это библиотека для разработки игр на языке программирования Python. Рассматриваются установка pygame, его особенности и разработки игр в общем.

Каркас игры на Pygame

input

Базовая структура игры на pygame: импорт, главное окно и его обновление, главный цикл, цикл перебора событий, частота обновления окна и задержка.

Модуль pygame.draw – геометрические примитивы. Анимация

input

Модуль pygame.draw содержит функции рисования геометрических примитивов: rect - прямоугольник, line - отрезок, lines - ломаная линия, polygon - многоугольник, circle - круг, ellipse - овал, arc - дуга и др.

События клавиатуры

input

Pygame регистрирует два типа событий клавиатуры - клавиша нажата (KEYDOWN) и клавиша выпущена (KEYUP). При обработки длительных нажатий клавиш (зажатий) используется функция get_pressed() модуля pygame.key.

События мыши

input

В pygame обрабатываются три типа событий мыши: нажатие и отпускание кнопок (MOUSEBUTTONDOWN и MOUSEBUTTONUP), перемещение мыши (MOUSEMOTION). Какая кнопка была нажата, записывается в свойство button, координаты клика - в свойство pos.

Класс Surface и метод blit

input

В pygame одну из центральных ролей играют класс Surface (поверхность) и его метод blit(). С помощью blit() поверхности отображаются на главном окне и друг на друге. Методу, кроме экземпляра Surface, также передаются координаты.

Класс Rect. Использование с Surface

input

С помощью класса Rect создаются прямоугольные области для хранения координат и размеров. С помощью методов Rect можно изменять свойства областей. Экземпляры данного класса используются для управления поверхностями - экземплярами класса Surface.

Модуль pygame.image. Использование изображений

input

Функция load() модуля pygame.image загружает изображение из файла и возвращает экземпляр Surface. К таким поверхностям рекомендуется применять методы convert() или convert_alpha(), которые переводят формат кодирования пикселей поверхности в формат кодирования пикселей главной поверхности. При выполнении игры это ускоряет отрисовку поверхностей.

Классы Sprite и Group

input

На базе класса Sprite создаются игровые объекты, которые можно группировать с помощью класса Group и подобных. Модуль pygame.sprite содержит ряд функций проверки столкновений спрайтов.

Модуль pygame.transform. Трансформации поверхностей

input

Функции модуля pygame.transform обычно используются для поверхностей-изображений, чтобы изменить их размер, повернуть, изменить цвет и др. Благодаря этому персонаж в игре может поворачиваться, уменьшаться или увеличиваться, деформироваться, становиться серым или цветным.

Шрифты и текст. Модуль pygame.font и метод render

input

С помощью классов Font и SysFont модуля pygame.font создаются объекты-шрифты. Их метод render() создает поверхность с текстом, которую можно отобразить на другом экземпляре Surface с помощью метода blit().

Класс Sound и модуль pygame.mixer.music

input

Модули pygame.mixer для многоканального аудио и pygame.mixer.music для потокового аудио позволяют настроить в игре звуки спецэффектов и фоновую музыку. В управлении звуками ключевую роль играет класс Sound.

Pygame. Введение в разработку игр на Python




Все разделы сайта