УЧЕБНИК КУРСА: «PYTHON ЧЕРЕЗ СОЗДАНИЕ ИГР»

УРОК 1. Знакомство с Python и PyGame

Время на изучение: 2–3 часа (включая установку и практику)


ЦЕЛИ УРОКА

После изучения этого урока ты сможешь:

  1. Понимать, что такое язык программирования Python и библиотека PyGame.
  2. Установить все необходимые инструменты на свой компьютер самостоятельно.
  3. Создать структуру проекта и первый файл программы.
  4. Разбираться в структуре игрового кода (даже в тех частях, которые пока кажутся сложными).
  5. Запустить своё первое игровое окно и настроить его внешний вид.

1.1. ВВЕДЕНИЕ: ЧТО МЫ БУДЕМ ДЕЛАТЬ?

Привет! Добро пожаловать на курс. Ты держишь в руках учебник, который станет твоим проводником в мире разработки игр.

Многие курсы начинают со скучной теории: «Переменная — это именованная область памяти...». Мы поступим иначе. Ты сразу увидишь результат. Но чтобы результат был стабильным, нужно понимать фундамент.

Что такое Python?

Python (Пайтон) — это язык, на котором мы пишем инструкции для компьютера.

Представь, что компьютер — это очень исполнительный, но буквально понимающий всё робот. Если ты скажешь ему «нарисуй круг», он спросит: «Где? Какого цвета? Какого размера?». Python — это язык, на котором мы даем эти точные инструкции.

Что такое PyGame?

Писать игру с нуля — это как строить дом без инструментов, голыми руками.
PyGame (ПайГейм) — это набор готовых инструментов (библиотека), который позволяет нам легко создавать окна, рисовать картинки и воспроизводить звуки. Мы подключаем этот набор к Python и начинаем творить.

Почему мы начинаем с окна?

Любая игра — это то, что видит игрок на экране. Наше первое задание — создать это «поле», на котором позже появится герой, враги и препятствия.


1.2. УСТАНОВКА ИНСТРУМЕНТОВ

Внимательно выполняй каждый шаг. Если что-то пойдет не так, смотри раздел «Частые ошибки» в конце документа.

Шаг 1. Установка языка Python

  1. Открой браузер и перейди на официальный сайт: python.org.
  2. Наведи курсор на меню Downloads и выбери Python 3.11.x (или самую свежую версию).
  3. Скачай установочный файл и запусти его.
  4. КРИТИЧЕСКИ ВАЖНО:
    В самом низу окна установщика есть галочка Add Python to PATH (Добавить Python в переменную PATH).
    ТЫ ДОЛЖЕН ПОСТАВИТЬ ЭТУ ГАЛОЧКУ!
    Если ты этого не сделаешь, компьютер не поймет команду python и мы не сможем запустить игры.
  5. Нажми кнопку Install Now.
  6. Дождись сообщения Setup was successful и нажми Close.

Проверка, что все успешно установилось:

  1. Нажми на клавиатуре Win + R (на Windows) или открой Terminal (на Mac).
  2. Введи команду: python --version
  3. Нажми Enter.
  4. Если увидишь Python 3.11... — всё верно. Если ошибка — переустанови, не забыв про галочку PATH.

Шаг 2. Установка редактора кода (VS Code)

Писать код в «Блокноте» неудобно. Мы будем использовать профессиональный инструмент — Visual Studio Code.

  1. Перейди на сайт: code.visualstudio.com.
  2. Скачай версию для своей системы (Windows/macOS/Linux).
  3. Установи программу, соглашаясь со всеми настройками по умолчанию.
  4. Запусти VS Code.

Настройка расширения Python:

  1. Слева на панели найди значок Квадратики (Extensions / Расширения) или нажми Ctrl + Shift + X.
  2. В поиске введи: Python.
  3. Выбери расширение от компании Microsoft (оно будет первым).
  4. Нажми синюю кнопку Install.
  5. Зачем? Теперь редактор будет подсвечивать код цветами и подсказывать ошибки.

Шаг 3. Установка библиотеки PyGame

Библиотека PyGame не входит в стандартный Python, её нужно скачать отдельно через терминал.

  1. Открой командную строку (Win + R → введи cmdEnter).
  2. Введи следующую команду и нажми Enter:
    pip install pygame
    
  3. Ты увидишь бегущие строки загрузки. Дождись сообщения Successfully installed pygame.
  4. Закрой командную строку.

1.3. СОЗДАНИЕ ПЕРВОГО ПРОЕКТА

Программисты хранят код в папках. Хаос на рабочем столе — враг разработчика.

  1. Создай главную папку:
    Зайди в «Документы» и создай папку с названием PythonGames.
    Важно: Называй папки на английском языке и без пробелов.
  2. Создай папку урока:
    Внутри PythonGames создай папку Lesson1.
  3. Открой проект:
    Запусти VS Code. Нажми FileOpen Folder и выбери папку Lesson1.
  4. Создай файл:
    В левой панели (где написано 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()

Запуск программы

  1. Сохрани файл: нажми Ctrl + S (или FileSave).
  2. Запусти код: нажми кнопку ▶️ в правом верхнем углу или клавишу F5.
  3. Результат: Должно открыться отдельное окно с голубым фоном.
  4. Попробуй закрыть его крестиком. Программа должна завершиться корректно.

1.5. РАЗБОР КОДА: КАК ЭТО РАБОТАЕТ?

Даже если ты скопировал код, ты должен понимать, что происходит внутри.

Блок 1. Импорт инструментов

import pygame
import sys

Блок 2. Переменные (Настройки)

WIDTH = 800
HEIGHT = 600
COLOR = (135, 206, 235)

Блок 3. Инициализация

pygame.init()

Создание окна (САМОЕ ВАЖНОЕ)

screen = pygame.display.set_mode((WIDTH, HEIGHT))

Часть 1: Функция pygame.display.set_mode(...)

Часть 2: Знак равно =

Часть 3: Переменная screen

Блок 4. Игровой Цикл (Сердце игры)

running = True
while running:
    ...

Блок 5. Обработка событий

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

Блок 6. Отрисовка и Обновление

    screen.fill(COLOR)
    pygame.display.flip()

Блок 7. Завершение

pygame.quit()
sys.exit()

Немного о pygame.display.flip()

1. Это не физический поворот

Ранее я написал, что pygame.display.flip() — переворачивает экран, но сразу успокою: твой монитор не перевернется. Слово flip в английском означает «переворот», «щелчок» или «быстрая смена». В контексте программирования игр это означает мгновенную замену кадров.

2. Тайна «Двойного буфера»

Чтобы понять, зачем нужна эта команда, нужно знать маленький секрет: у компьютера в памяти есть два экрана одновременно.

  1. Видимый экран (Front Buffer): То, что ты видишь на мониторе прямо сейчас.
  2. Скрытый экран (Back Buffer): Невидимая копия экрана в памяти компьютера.

Почему их два? Представь, что художник рисует картину прямо у тебя на глазах. Если бы он рисовал её медленно, ты бы видел каждый штрих, каждую линию, как она появляется из ниоткуда. Картинка бы «мигала» и дергалась. Это выглядело бы некрасиво.

Чтобы этого избежать, компьютер работает хитрее:

  1. Он рисует новый кадр на скрытом экране (ты этого не видишь).
  2. Когда кадр полностью готов, он мгновенно меняет местами скрытый и видимый экраны.
  3. Ты видишь уже готовую картинку, без процесса рисования.

3. Книжка-анимация (Флипбук)

Вспомни книжку с картинками на уголках страниц.

4. Что делает команда flip()?

pygame.display.flip()

Эта команда говорит компьютеру:

«Я закончил рисовать всё, что хотел на этом кадре. Поменяй местами скрытый экран и видимый прямо сейчас!»

Это происходит очень быстро (обычно 60 раз в секунду). Из-за этой скорости наши глаза воспринимают это как плавное движение, а не как смену слайдов.

5. Что будет, если убрать эту строку?

Попробуй удалить pygame.display.flip() из кода и запустить игру.

6. Почему это внутри цикла while?

Игра — это движение. Чтобы создать иллюзию движения, нам нужно:

  1. Стереть старый кадр.
  2. Нарисовать новый (например, сдвинуть героя на 1 пиксель).
  3. Показать новый кадр (flip()).
  4. Повторить всё сначала.

Если сделать flip() только один раз до цикла, игра «застынет» навсегда. Поэтому мы «переворачиваем экран» в каждом кадре игры.

Совет на будущее

Всегда ставь pygame.display.flip() в самом конце цикла while, после того как ты нарисовал всё, что хотел (фон, героя, врагов, счет). Если поставишь её в начале цикла — игрок увидит старый кадр, а не новый.

Порядок важен:

  1. Обработка нажатий.
  2. Обновление логики (движение).
  3. Отрисовка (fill, draw...).
  4. Обновление экрана (flip()).

1.6. ТЕОРИЯ: ЦВЕТА И КООРДИНАТЫ

В играх мы постоянно работаем с числами. Давай разберем два главных понятия.

1. Система координат

В математике ты привык, что ось Y идет вверх. В программировании игр ось 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. «Архитектор»

  1. Найди переменные WIDTH и HEIGHT.
  2. Измени их так, чтобы окно стало квадратным (например, 500 на 500).
  3. Запусти код.
  4. Попробуй сделать окно очень широким (1200 на 400).
  5. Вопрос: Что будет, если поставить отрицательное число (например, -100)? Попробуй и запиши ответ.

Задание 2. «Художник»

  1. Найди переменную COLOR.
  2. Сделай фон чёрным (0, 0, 0).
  3. Сделай фон белым (255, 255, 255).
  4. Подбери свой любимый цвет с помощью онлайн-палитры.
  5. Важно: Помни, что числа не могут быть больше 255. Что будет, если написать 300? Проверь.

Задание 3. «Автор»

  1. Найди переменную TITLE.
  2. Измени текст внутри кавычек на название своей будущей игры.
  3. Внимание: Текст в Python всегда должен быть в кавычках ("Текст" или 'Текст'). Если убрать кавычки, программа выдаст ошибку. Проверь это специально, чтобы увидеть, как выглядит ошибка.

1.8. ДОМАШНЕЕ ЗАДАНИЕ

Задание Баллы
1 Установить Python, VS Code, PyGame без помощи 2
2 Запустить код main.py без ошибок 2
3 Изменить размер окна на 1024x768 1
4 Установить уникальный цвет фона (не как в уроке) 2
5 Написать в заголовке своё имя или никнейм 1
6 Сделать скриншот окна и отправить наставнику 2
ИТОГО 10

Как сдать:

  1. Сделай скриншот окна:
    • Windows: Win + Shift + S
    • Mac: Command + Shift + 4
  2. Сохрани файл как Lesson1_ТвоёИмя.png.
  3. Отправь файл в чат группы.
  4. Если возникла ошибка — сделай скриншот текста ошибки (красный текст в терминале) и отправь вместе с вопросом.

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. ГЛОССАРИЙ УРОКА

Новые слова, которые ты узнал:


ЗАКЛЮЧЕНИЕ

Ты сделал первый шаг! Многие хотят создавать игры, но немногие действительно устанавливают инструменты и пишут код. Ты уже в числе тех, кто делает.

Что было сегодня:

Что будет в Уроке 2: Наше окно пока пустое. В следующем уроке мы добавим в него Игрока. Мы научимся рисовать квадраты и круги, и самое главное — заставим их двигаться по нажатию клавиш!

💡 Совет: Не удаляй пока файл main.py. Создай копию и назови её main_backup.py. В программировании всегда полезно иметь резервную копию рабочего кода, прежде чем вносить новые изменения.

До встречи на следующем уроке!


Учебник подготовлен для курса «Python через создание игр».