1. Введение в GameDev на Python: установка инструментов и создание окна приложения
Введение в GameDev на Python: установка инструментов и создание окна приложения
Добро пожаловать в курс «Создание игр на Python: Основы и работа с файлами»! Это первая статья, с которой начнется ваше путешествие в мир разработки игр (GameDev). Мы не просто напишем код, мы научимся создавать интерактивные миры, управлять графикой и работать с файловой системой вашего компьютера.
Многие популярные игры и прототипы создавались на Python. Благодаря библиотеке Pygame, этот язык стал отличным выбором для новичков, желающих понять, как работают игры «под капотом», не отвлекаясь на сложную архитектуру движков вроде Unity или Unreal Engine.
Подготовка рабочего места
Прежде чем мы начнем творить, нам нужно подготовить инструменты. Для создания игр нам понадобятся две основные вещи: интерпретатор Python и библиотека Pygame.
1. Установка Python
Скорее всего, Python у вас уже установлен. Проверить это можно, открыв терминал (командную строку) и введя команду:
Если вы видите версию 3.6 или выше — отлично. Если нет, скачайте последнюю версию с официального сайта python.org.
2. Установка Pygame
Pygame — это набор модулей Python, предназначенных для написания видеоигр. Она включает в себя работу с компьютерной графикой и звуком. Установка производится через менеджер пакетов pip.
Откройте терминал и введите:
Если вы работаете на macOS или Linux, возможно, вам потребуется использовать pip3 вместо pip.
Структура проекта и «регистрация» файлов
В запросе вы упоминали «регистрацию файлов». В контексте разработки игр на базовом уровне это означает правильную организацию файловой системы и умение программы находить свои ресурсы (картинки, звуки, уровни).
Игра — это не один файл с кодом. Это сложная система, где код должен «знать», где лежат его ресурсы. Создадим правильную структуру папок для нашего курса:
MyFirstGame.main.py — это будет точка входа в игру.assets (ресурсы).assets создайте папки images (изображения) и sounds (звуки).Такая структура позволяет легко обращаться к файлам. Когда мы будем загружать картинку, мы укажем путь относительно главного файла, например: assets/images/player.png. Это и есть процесс «регистрации» пути к файлу в коде.
!Структура файлов проекта для правильной организации ресурсов игры
Первая программа: Создание окна
Любая игра начинается с окна. Это ваш холст. Давайте напишем код, который просто открывает окно и не закрывается сразу же.
Откройте main.py и напишите следующий код:
Давайте разберем, что здесь происходит, шаг за шагом.
Инициализация и настройка
Строка pygame.init() запускает все внутренние модули Pygame. Без этой команды библиотека не сможет работать с графикой или звуком.
Функция pygame.display.set_mode((WIDTH, HEIGHT)) создает графическое окно. Обратите внимание, что размеры передаются в двойных скобках — это кортеж (tuple).
Игровой цикл (Game Loop)
Это самая важная концепция в разработке игр. В отличие от обычных программ, которые выполняют задачу и закрываются, игра работает в бесконечном цикле.
Этот цикл повторяется десятки раз в секунду. Каждый проход цикла называется кадром (frame). Внутри цикла происходят три вещи:
!Схематичное изображение работы игрового цикла
Система координат в Pygame
Чтобы рисовать объекты, нужно понимать, как компьютер видит экран. В школе на уроках математики мы привыкли к декартовой системе координат, где растет вверх. В компьютерной графике все иначе.
Начало координат находится в левом верхнем углу экрана.
* Ось направлена вправо. * Ось направлена вниз.
Если мы хотим поместить объект в центр экрана, нам нужно рассчитать его координаты. Формула для центра по оси выглядит так:
где — искомая координата центра по горизонтали, а — ширина экрана.
Соответственно, для оси :
где — искомая координата центра по вертикали, а — высота экрана.
> Понимание того, что увеличивается при движении вниз — одна из самых частых сложностей для новичков. Если вы хотите, чтобы персонаж подпрыгнул (двигался вверх), вам нужно уменьшать его координату .
Цвета и заливка экрана
Пока наше окно просто черное. Давайте закрасим его. В компьютерах цвета обычно кодируются в формате RGB (Red, Green, Blue).
Это три числа от 0 до 255, указывающие интенсивность красного, зеленого и синего каналов.
* — Черный * — Белый * — Красный * — Зеленый * — Синий
Добавим заливку в наш игровой цикл. Важно делать это в начале цикла, чтобы очищать экран от предыдущего кадра перед рисованием новых объектов.
Команда pygame.display.flip() (или pygame.display.update()) «переворачивает» экран. Компьютер рисует кадр в памяти, а эта команда показывает готовый кадр пользователю. Без нее вы увидите только черный экран, даже если нарисовали шедевры.
Частота кадров (FPS)
Чтобы игра работала с одинаковой скоростью на мощных и слабых компьютерах, нужно контролировать FPS (Frames Per Second — кадры в секунду).
Время одного кадра рассчитывается как:
где — время в секундах, отведенное на один кадр, а — желаемое количество кадров в секунду.
Если , то на один кадр у компьютера есть примерно 0.016 секунды (16 миллисекунд). В Pygame для этого используется объект pygame.time.Clock.
Добавим его в код:
Итоговый код урока
Вот полный код вашего первого приложения, которое создает окно, заливает его цветом и корректно закрывается:
Поздравляю! Вы создали фундамент для любой будущей игры. В следующих статьях мы научимся загружать изображения, перемещать их и обрабатывать нажатия клавиш.