УЧЕБНИК КУРСА: «PYTHON ЧЕРЕЗ СОЗДАНИЕ ИГР»
УРОК 1. Знакомство с Python и PyGame
Время на изучение: 2–3 часа (включая установку и практику)
ЦЕЛИ УРОКА
После изучения этого урока ты сможешь:
- Понимать, что такое язык программирования Python и библиотека PyGame.
- Установить все необходимые инструменты на свой компьютер самостоятельно.
- Создать структуру проекта и первый файл программы.
- Разбираться в структуре игрового кода (даже в тех частях, которые пока кажутся сложными).
- Запустить своё первое игровое окно и настроить его внешний вид.
1.1. ВВЕДЕНИЕ: ЧТО МЫ БУДЕМ ДЕЛАТЬ?
Привет! Добро пожаловать на курс. Ты держишь в руках учебник, который станет твоим проводником в мире разработки игр.
Многие курсы начинают со скучной теории: «Переменная — это именованная область памяти...». Мы поступим иначе. Ты сразу увидишь результат. Но чтобы результат был стабильным, нужно понимать фундамент.
Что такое Python?
Python (Пайтон) — это язык, на котором мы пишем инструкции для компьютера.
Представь, что компьютер — это очень исполнительный, но буквально понимающий всё робот. Если ты скажешь ему «нарисуй круг», он спросит: «Где? Какого цвета? Какого размера?». Python — это язык, на котором мы даем эти точные инструкции.
Что такое PyGame?
Писать игру с нуля — это как строить дом без инструментов, голыми руками.
PyGame (ПайГейм) — это набор готовых инструментов (библиотека), который позволяет нам легко создавать окна, рисовать картинки и воспроизводить звуки. Мы подключаем этот набор к Python и начинаем творить.
Почему мы начинаем с окна?
Любая игра — это то, что видит игрок на экране. Наше первое задание — создать это «поле», на котором позже появится герой, враги и препятствия.
1.2. УСТАНОВКА ИНСТРУМЕНТОВ
Внимательно выполняй каждый шаг. Если что-то пойдет не так, смотри раздел «Частые ошибки» в конце документа.
Шаг 1. Установка языка Python
- Открой браузер и перейди на официальный сайт: python.org.
- Наведи курсор на меню Downloads и выбери Python 3.11.x (или самую свежую версию).
- Скачай установочный файл и запусти его.
- КРИТИЧЕСКИ ВАЖНО:
В самом низу окна установщика есть галочкаAdd Python to PATH(Добавить Python в переменную PATH).
ТЫ ДОЛЖЕН ПОСТАВИТЬ ЭТУ ГАЛОЧКУ!
Если ты этого не сделаешь, компьютер не поймет командуpythonи мы не сможем запустить игры. - Нажми кнопку
Install Now. - Дождись сообщения
Setup was successfulи нажмиClose.
Проверка, что все успешно установилось:
- Нажми на клавиатуре
Win + R(на Windows) или откройTerminal(на Mac). - Введи команду:
python --version - Нажми
Enter. - Если увидишь
Python 3.11...— всё верно. Если ошибка — переустанови, не забыв про галочку PATH.
Шаг 2. Установка редактора кода (VS Code)
Писать код в «Блокноте» неудобно. Мы будем использовать профессиональный инструмент — Visual Studio Code.
- Перейди на сайт: code.visualstudio.com.
- Скачай версию для своей системы (Windows/macOS/Linux).
- Установи программу, соглашаясь со всеми настройками по умолчанию.
- Запусти VS Code.
Настройка расширения Python:
- Слева на панели найди значок Квадратики (Extensions / Расширения) или нажми
Ctrl + Shift + X. - В поиске введи:
Python. - Выбери расширение от компании Microsoft (оно будет первым).
- Нажми синюю кнопку
Install. - Зачем? Теперь редактор будет подсвечивать код цветами и подсказывать ошибки.
Шаг 3. Установка библиотеки PyGame
Библиотека PyGame не входит в стандартный Python, её нужно скачать отдельно через терминал.
- Открой командную строку (
Win + R→ введиcmd→Enter). - Введи следующую команду и нажми
Enter:pip install pygame - Ты увидишь бегущие строки загрузки. Дождись сообщения
Successfully installed pygame. - Закрой командную строку.
1.3. СОЗДАНИЕ ПЕРВОГО ПРОЕКТА
Программисты хранят код в папках. Хаос на рабочем столе — враг разработчика.
- Создай главную папку:
Зайди в «Документы» и создай папку с названиемPythonGames.
Важно: Называй папки на английском языке и без пробелов. - Создай папку урока:
ВнутриPythonGamesсоздай папкуLesson1. - Открой проект:
Запусти VS Code. НажмиFile→Open Folderи выбери папкуLesson1. - Создай файл:
В левой панели (где написаноLESSON1) нажми на значок «Новый файл» (лист бумаги).
Назови файл строго:main.py.
Расширение.pyговорит компьютеру, что это программа на Python.
1.4. КОД ПЕРВОЙ ИГРЫ
Скопируй код ниже в файл main.py. Не бойся, если что-то непонятно — ниже мы разберем каждую строку.
import pygame
import sys
# ------- НАСТРОЙКИ ИГРЫ (МЕНЯТЬ ЗДЕСЬ) -------
WIDTH = 800 # Ширина окна в пикселях
HEIGHT = 600 # Высота окна в пикселях
TITLE = "Моя Первая Игра" # Заголовок окна
COLOR = (135, 206, 235) # Цвет фона (RGB)
# ----------------------------------------------
# Инициализация движка
pygame.init()
# Создание окна с заданными размерами
screen = pygame.display.set_mode((WIDTH, HEIGHT))
# Установка заголовка окна
pygame.display.set_caption(TITLE)
# Игровой цикл (Движок работает здесь)
running = True
while running:
# Проверка событий (нажатия клавиш, закрытие окна)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Закрашивание экрана цветом
screen.fill(COLOR)
# Обновление экрана (показываем новый кадр)
pygame.display.flip()
# Завершение работы
pygame.quit()
sys.exit()
Запуск программы
- Сохрани файл: нажми
Ctrl + S(илиFile→Save). - Запусти код: нажми кнопку ▶️ в правом верхнем углу или клавишу
F5. - Результат: Должно открыться отдельное окно с голубым фоном.
- Попробуй закрыть его крестиком. Программа должна завершиться корректно.
1.5. РАЗБОР КОДА: КАК ЭТО РАБОТАЕТ?
Даже если ты скопировал код, ты должен понимать, что происходит внутри.
Блок 1. Импорт инструментов
import pygame
import sys
import— это команда «подключи».pygame— подключаем библиотеку для игр.sys— подключаем системную библиотеку (нужна для правильного закрытия программы).- Без этих строк компьютер не поймет команды
pygame.init()илиsys.exit(), когда происходит завершение работы программы
Блок 2. Переменные (Настройки)
WIDTH = 800
HEIGHT = 600
COLOR = (135, 206, 235)
- Переменная — это «коробка» с названием, в которой хранится значение.
WIDTH = 800— мы положили в коробкуWIDTHчисло 800.- Зачем это нужно? Если мы захотим изменить размер окна, мы меняем число только в одном месте (в начале), а не ищем все цифры 800 по всему коду. Это правило хорошего тона.
Блок 3. Инициализация
pygame.init()
pygame.init()— запускаем движок PyGame. Без этого ничего не заработает.
Создание окна (САМОЕ ВАЖНОЕ)
screen = pygame.display.set_mode((WIDTH, HEIGHT))
- Эта строка состоит из трех частей. Давай разберем их справа налево, потому что так работает компьютер.
Часть 1: Функция pygame.display.set_mode(...)
pygame.display— это модуль, отвечающий за всё, что связано с экраном (окно, заголовок, размер).set_mode— это функция (команда), которая создает игровое окно.(WIDTH, HEIGHT)— это аргументы. Мы передаем внутрь функции размеры, которые записали в переменные выше (800 и 600).- Что делает функция? Она обращается к операционной системе (Windows/Mac), говорит: «Эй, создай мне окно такого размера!» и получает от системы готовое окно.
Часть 2: Знак равно =
- В математике
=означает «равно» (5 = 2 + 3). - В программировании
=означает «ПОЛОЖИ В ПЕРЕМЕННУЮ» или «ПРИСВОЙ». - Это не равенство, это действие! Читается как: «Взять то, что справа, и положить в коробку слева».
- Пример:
x = 5читается не «икс равен пяти», а «положи пятерку в коробку икс» (ну или более формально «положи пятерку в переменную икс»).
Часть 3: Переменная screen
screen(экран) — это название коробки (переменной), куда мы кладем результат.- Что мы положили внутрь? Мы положили туда само Игровое Окно (технически это называется «Поверхность» или «Surface»).
- Зачем нам сохранять окно в переменную?
- Сохраняя окно в переменную
screen, мы даем ему имя. - Позже в коде мы будем писать
screen.fill(...)(закрась экран) илиscreen.blit(...)(нарисуй картинку на экране). - Если убрать
screen =, окно создастся, но мы потеряем к нему доступ. Мы не сможем ничего на нем нарисовать.
- Сохраняя окно в переменную
Блок 4. Игровой Цикл (Сердце игры)
running = True
while running:
...
whileозначает «ПОКА».while running:читается как: «Пока переменнаяrunningравна Истине (True), повторяй всё, что внутри».- А поскольку в переменной
runningмы хранимTrueи нигде его менять не будем, то игра работает в бесконечном цикле. Она постоянно проверяет: «Не нажал ли игрок кнопку? Не нужно ли закрыть окно?». - Обычно этот цикл повторяется 60 раз в секунду (60 FPS).
Блок 5. Обработка событий
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
- Этот код внутри цикла проверяет события.
pygame.QUIT— это событие нажатия на крестик закрытия окна.- Если мы нажали крестик, мы меняем
runningнаFalse(Ложь). - Как только
runningстановитсяFalse, циклwhileостанавливается, и программа идет к завершению.
Блок 6. Отрисовка и Обновление
screen.fill(COLOR)
pygame.display.flip()
screen.fill(COLOR)— закрашивает всё окно цветом. Это нужно делать каждый кадр, иначе на экране останется «шлейф» от предыдущих движений.pygame.display.flip()— переворачивает экран (обновляет картинку). Всё, что мы нарисовали в памяти, становится видимым игроку (более подробно проpygame.display.flip()я написал ниже)
Блок 7. Завершение
pygame.quit()
sys.exit()
- Выполняется только после выхода из цикла.
pygame.quit()— выключает движок PyGame.sys.exit()— полностью закрывает программу.
Немного о pygame.display.flip()
1. Это не физический поворот
Ранее я написал, что pygame.display.flip() — переворачивает экран, но сразу успокою: твой монитор не перевернется. Слово flip в английском означает «переворот», «щелчок» или «быстрая смена». В контексте программирования игр это означает мгновенную замену кадров.
2. Тайна «Двойного буфера»
Чтобы понять, зачем нужна эта команда, нужно знать маленький секрет: у компьютера в памяти есть два экрана одновременно.
- Видимый экран (Front Buffer): То, что ты видишь на мониторе прямо сейчас.
- Скрытый экран (Back Buffer): Невидимая копия экрана в памяти компьютера.
Почему их два? Представь, что художник рисует картину прямо у тебя на глазах. Если бы он рисовал её медленно, ты бы видел каждый штрих, каждую линию, как она появляется из ниоткуда. Картинка бы «мигала» и дергалась. Это выглядело бы некрасиво.
Чтобы этого избежать, компьютер работает хитрее:
- Он рисует новый кадр на скрытом экране (ты этого не видишь).
- Когда кадр полностью готов, он мгновенно меняет местами скрытый и видимый экраны.
- Ты видишь уже готовую картинку, без процесса рисования.
3. Книжка-анимация (Флипбук)
Вспомни книжку с картинками на уголках страниц.
- Ты рисуешь новый кадр на следующей странице (это работа в скрытом буфере).
- Чтобы увидеть движение, ты должен перевернуть страницу (это команда
flip()). - Если ты нарисуешь кадр, но не перевернешь страницу — картинка не изменится.
4. Что делает команда flip()?
pygame.display.flip()
Эта команда говорит компьютеру:
«Я закончил рисовать всё, что хотел на этом кадре. Поменяй местами скрытый экран и видимый прямо сейчас!»
Это происходит очень быстро (обычно 60 раз в секунду). Из-за этой скорости наши глаза воспринимают это как плавное движение, а не как смену слайдов.
5. Что будет, если убрать эту строку?
Попробуй удалить pygame.display.flip() из кода и запустить игру.
- Результат: Окно откроется, но оно будет чёрным (или белым, или зависнет на первом кадре).
- Почему? Потому что ты закрасил экран цветом в памяти (
screen.fill(COLOR)), но не сказал компьютеру показать эту память игроку. Всё происходило «за занавесом».
6. Почему это внутри цикла while?
Игра — это движение. Чтобы создать иллюзию движения, нам нужно:
- Стереть старый кадр.
- Нарисовать новый (например, сдвинуть героя на 1 пиксель).
- Показать новый кадр (
flip()). - Повторить всё сначала.
Если сделать flip() только один раз до цикла, игра «застынет» навсегда. Поэтому мы «переворачиваем экран» в каждом кадре игры.
Совет на будущее
Всегда ставь pygame.display.flip() в самом конце цикла while, после того как ты нарисовал всё, что хотел (фон, героя, врагов, счет). Если поставишь её в начале цикла — игрок увидит старый кадр, а не новый.
Порядок важен:
- Обработка нажатий.
- Обновление логики (движение).
- Отрисовка (fill, draw...).
- Обновление экрана (
flip()).
1.6. ТЕОРИЯ: ЦВЕТА И КООРДИНАТЫ
В играх мы постоянно работаем с числами. Давай разберем два главных понятия.
1. Система координат
В математике ты привык, что ось Y идет вверх. В программировании игр ось Y идет вниз.
- Точка
(0, 0)находится в левом верхнем углу экрана. Xувеличивается вправо.Yувеличивается вниз.
Когда мы будем двигать героя, мы будем менять именно эти числа.
2. Цвета (RGB)
Компьютер создает цвета, смешивая три света: Красный (Red), Зелёный (Green), Синий (Blue). Каждый цвет может иметь яркость от 0 (выключен) до 255 (максимум).
Формат записи: (Красный, Зелёный, Синий)
| Цвет | Код | Почему так? |
|---|---|---|
| Чёрный | (0, 0, 0) |
Все лампы выключены |
| Белый | (255, 255, 255) |
Все лампы на максимум |
| Красный | (255, 0, 0) |
Только красная горит |
| Зелёный | (0, 255, 0) |
Только зелёная горит |
| Синий | (0, 0, 255) |
Только синяя горит |
| Жёлтый | (255, 255, 0) |
Красная + Зелёная = Жёлтая |
💡 Совет: Чтобы не гадать, используй онлайн-палитры. Введи в Google «RGB color picker» и выбирай цвет мышкой. Код скопируй в игру.
1.7. ПРАКТИЧЕСКИЕ ЗАДАНИЯ
Выполни эти задания, чтобы закрепить материал. Не просто меняй цифры, а пробуй предсказать результат перед запуском.
Задание 1. «Архитектор»
- Найди переменные
WIDTHиHEIGHT. - Измени их так, чтобы окно стало квадратным (например, 500 на 500).
- Запусти код.
- Попробуй сделать окно очень широким (1200 на 400).
- Вопрос: Что будет, если поставить отрицательное число (например, -100)? Попробуй и запиши ответ.
Задание 2. «Художник»
- Найди переменную
COLOR. - Сделай фон чёрным
(0, 0, 0). - Сделай фон белым
(255, 255, 255). - Подбери свой любимый цвет с помощью онлайн-палитры.
- Важно: Помни, что числа не могут быть больше 255. Что будет, если написать 300? Проверь.
Задание 3. «Автор»
- Найди переменную
TITLE. - Измени текст внутри кавычек на название своей будущей игры.
- Внимание: Текст в Python всегда должен быть в кавычках (
"Текст"или'Текст'). Если убрать кавычки, программа выдаст ошибку. Проверь это специально, чтобы увидеть, как выглядит ошибка.
1.8. ДОМАШНЕЕ ЗАДАНИЕ
| № | Задание | Баллы |
|---|---|---|
| 1 | Установить Python, VS Code, PyGame без помощи | 2 |
| 2 | Запустить код main.py без ошибок |
2 |
| 3 | Изменить размер окна на 1024x768 | 1 |
| 4 | Установить уникальный цвет фона (не как в уроке) | 2 |
| 5 | Написать в заголовке своё имя или никнейм | 1 |
| 6 | Сделать скриншот окна и отправить наставнику | 2 |
| ИТОГО | 10 |
Как сдать:
- Сделай скриншот окна:
- Windows:
Win + Shift + S - Mac:
Command + Shift + 4
- Windows:
- Сохрани файл как
Lesson1_ТвоёИмя.png. - Отправь файл в чат группы.
- Если возникла ошибка — сделай скриншот текста ошибки (красный текст в терминале) и отправь вместе с вопросом.
1.9. ЧАСТЫЕ ОШИБКИ И ИХ РЕШЕНИЕ
Сохраните эту страницу. 90% проблем новичков решаются здесь.
| Проблема | Причина | Решение |
|---|---|---|
python не является командой |
Не поставил галочку PATH при установке | Переустанови Python, обязательно поставь галочку Add Python to PATH |
ModuleNotFoundError: No module named 'pygame' |
PyGame не установлен | Открой терминал и введи pip install pygame |
| Окно открывается и сразу закрывается | Ошибка в коде или файл не сохранён | Проверь терминал внизу на красные ошибки. Нажми Ctrl+S перед запуском. |
| SyntaxError: invalid syntax | Опечатка (забыл скобку, кавычку, двоеточие) | Внимательно сравни свой код с учебником. Ищи красные подчёркивания в VS Code. |
| IndentationError | Неправильные отступы (пробелы слева) | В Python отступы важны. Код внутри while должен быть сдвинут вправо. |
| Цвет не меняется | Числа больше 255 или меньше 0 | Цвета RGB работают только в диапазоне 0–255. |
| Кавычки в заголовке | Забыл кавычки вокруг текста | Строки текста всегда пишутся как "Текст". |
1.10. ГЛОССАРИЙ УРОКА
Новые слова, которые ты узнал:
- Библиотека (Library) — набор готового кода, который можно использовать в своей программе (например, PyGame).
- Переменная (Variable) — именованное хранилище данных (коробка с названием).
- Цикл (Loop) — конструкция, которая повторяет действия много раз (сердце игры).
- Импорт (Import) — подключение внешней библиотеки к программе.
- Синтаксис (Syntax) — правила написания кода (как грамматика в языке).
- Терминал (Terminal) — программа для ввода команд компьютеру напрямую.
ЗАКЛЮЧЕНИЕ
Ты сделал первый шаг! Многие хотят создавать игры, но немногие действительно устанавливают инструменты и пишут код. Ты уже в числе тех, кто делает.
Что было сегодня:
- Настроили среду разработки.
- Разобрали структуру игры.
- Научились управлять переменными.
Что будет в Уроке 2: Наше окно пока пустое. В следующем уроке мы добавим в него Игрока. Мы научимся рисовать квадраты и круги, и самое главное — заставим их двигаться по нажатию клавиш!
💡 Совет: Не удаляй пока файл
main.py. Создай копию и назови еёmain_backup.py. В программировании всегда полезно иметь резервную копию рабочего кода, прежде чем вносить новые изменения.
До встречи на следующем уроке!
Учебник подготовлен для курса «Python через создание игр».