Занятия для детей на Python:Pygame

Чтобы записаться на направление,
напишите нашим администраторам
Pygame - это библиотека языка программирования Python. Если проще, это дополнение, которое позволяет создавать компьютерные игры и приложения с цветной графикой.
Кому подходят занятия?
Для изучения направления ученикам необходимо освоить базу в Python. Рекомендуется ребятам, которые прошли все основные темы по нашему направлению Python и хотят создавать свои игры.
Детям нравится делать игры, так что это отличный вариант для них :)

Используя Pygame, можно создавать красочные и сложные проекты. Дети одновременно будут учиться и наслаждаться своими проектами.
Чему сможет научиться ребенок?
При обучении преподаватели используют теоретические материалы, проекты из разных книг, авторские задания и разные игры для начинающих питон-программистов.
На занятиях ребенок будет создавать свои собственные проекты от простых игр до популярных аналогов: Doodle Jump, Платформер, Flappy Bird, Star Wars, Need for Speed и многое другое.
Программа направления:
На освоение направления потребуется от 30 до 50 часов.

По окончанию курса учащиеся научатся создавать двумерные игры на языке Python и создадут такие игры как Dino Chrome, Flappy Bird, Doodle Jump и Space Invaders (и ещё несколько – опционально).
Введение (2-6 часов)
    • Создание окна, обновление экрана и обработка событий
    • Рендеринг и анимация без классов
    • Рендеринг и анимация с классом

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

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

    Поэтому в завершающем материале этого модуля ученик повторит анимацию мяча, но сделает это с использованием объектно-ориентированного программирования и затем с лёгкостью увеличит количество мячей с одного до десяти.
    Dino Chrome (8-12 часов)
      • Спрайт. Рендеринг фона и спрайта
      • Спрайт. Обновление спрайта
      • Группа спрайтов. Случайные появления
      • Главный герой. Анимация, управление и звук
      • Препятствия, случайный вид и столкновения
      • Конец игры. Шрифты и счётчик очков

      Этот модуль состоит из создания игры "Dino Chrome". Для каждой игры ученик будет подготавливать отдельную папку, в которой будет создавать места для хранения изображений, звуков, шрифтов для проекта, а также папки для объектов из игры: дороги, облаков, персонажей и других.

      Ученик познакомится с понятиями "спрайт" и "рендеринг", использует парадигму "наследование" из ООП, узнает об атрибутах и координатах каждого спрайта, а затем отобразит в будущей игре дорогу, чтобы затем создать движение дороги и сделать её бесконечной.

      Также в процессе прохождения модуля ученик создаст спрайт облака, познакомится с понятием "группа спрайтов" и улучшит игровой фон с помощью движущихся облаков: облака будут появляться в случайном месте и двигаться с разной скоростью.

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

      Завершится модуль подключением в игру игрового шрифта, отображения счётчика очков и вывода надписи "Game over" в случае проигрыша.

      В конце модуля ученик создаст игру, которую сам в дальнейшем сможет улучшать.
      Flappy Bird (6-10 часов)
      • Фон, слои отрисовки и движение фона
      • Главный герой, анимация и препятствия
      • Гравитация, поворот изображения и счётчик очков
      • Чекпоинт, конец игры и пересечение с точками

        Этот модуль состоит из создания игры "Flappy Bird". По аналогии с предыдущей игрой ученик почти самостоятельно загрузит и позиционирует фон (небо и город), затем наложит поверх одного фона ещё один (дорогу) и заставит дополнительный фон двигаться.

        Затем ученик добавит главного героя и его анимацию, меняющуюся с постоянной частотой, а также два препятствия, которые будут появляться на одном уровне друг с другом.

        Ученик изучит то, как создаётся гравитация в играх, будет регулировать скорость падения, создаст взлёт по клавише "Пробел", добавит звуки и научит персонажа наклоняться в сторону полёта. Здесь же добавит счётчик посередине экрана и запрограммирует его на обновление при прохождении препятствия.

        Завершится модуль добавлением в игру чекпоинта, добавлением игрового шрифта, надписи "Game over" и небольших улучшений игры.

        В конце модуля ученик создаст игру, которую сам в дальнейшем сможет улучшать.
        Doodle Jump (6-10 часов)
        • Рисование линий на фоне и генерация платформ.
        • Главный герой. Управление персонажем, прыжки и смещение камеры.
        • Пересечение с точкой, анимация прыжка и случайный цвет платформ.
        • Поведение платформ, пружина, счёт и конец игры.

        Этот модуль состоит из создания игры "Doodle Jump". Ученик освоит рисование линий на фоне и создаст случайное появление платформ на экране при каждой перезагрузке игры и движение платформ вниз с последующим появлением вверху экрана.

        Дальше ученик создаст различные анимации главного героя, запрограммирует его движения, научится разворачивать изображения по горизонтали, по аналогии с предыдущим проектом добавит гравитацию и добавит движение камеры вслед за движением персонажа.

        Затем ученику предстоит дополнительно обработать пересечения с платформами, научиться генерировать платформы разного цвета и добавить анимацию прыжка персонажа.

        Завершится модуль изменением поведения каждой из цветных платформ, добавлением пружины и поведения столкновения с ней, добавлением игрового шрифта, надписи "Game over" и небольших улучшений игры.

        В конце модуля ученик создаст игру, которую сам в дальнейшем сможет улучшать.
        Space Invaders (8-12 часов)
        • Космос и космический корабль.
        • Выстрелы по таймеру и громкость звуков.
        • Генератор изображений и анимация взрывов.
        • Движение, генерация и атака спрайтов.
        • Здоровье и отображение уровня здоровья персонажа.

        Этот модуль состоит из создания игры "Space Invaders". Ученик самостоятельно создаст фон и запрограммирует его движение, а также самостоятельно загрузит космический корабль и создаст его управление.

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

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

        Завершится модуль изучением понятия "группа из одного спрайта", добавлением здоровья главного героя и отображением его в углу экрана, добавлением игрового шрифта, надписи "Game over" и небольших улучшений игры.

        В конце модуля ученик создаст игру, которую сам в дальнейшем сможет улучшать.