1.28M
Category: programmingprogramming

Создание видеоигры на языке программирования Python

1.

Государственное бюджетное общеобразовательное
учреждение средняя общеобразовательная школа
№ 292 с углубленным изучением математики
Фрунзенского района Санкт-Петербурга
Создание видеоигры на языке
программирования Python
Выполнил учащийся 10 Б класса
Мужевлёв Андрей
Санкт-Петербург
2025 г.

2.

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

3.

Цель
Создать работающую видеоигру на языке программирования Python с
использованием библиотеки Pygame.

4.

Задачи
1. Найти основной источник информации для создания видеоигры на языке
программирования Python.
2. Найти подходящие ассеты и прочие файлы, которые пригодятся при
создании визуального оформления и звукового сопровождения игры.
3. Начать создавать видеоигру, параллельно ища дополнительные
источники информации о библиотеке Pygame.
4. Дорабатывать видеоигру, применяя полученную из основного и
дополнительных источников информацию.
5. Получить итоговую версию видеоигры.

5.

Основной
источник
информации
Плейлист “уроки Pygame”
с канала itProger
Я искал такой источник, в котором
будет обучение созданию готовой
игры, объяснение кода и
информация о возможностях
библиотеки Pygame.
Плейлист видеороликов по
созданию игры на Pygame с
канала itProger мне подошёл,
потому что удовлетворял всем
моим требованиям.

6.

Ассеты
Поиск изображений и
спрайтов
В начале видеокурса уже нужно
было использовать изображение
заднего фона, но брать те же
файлы, что и в плейлисте брать
нельзя, потому то я хотел сделать
собственную игру.
Я решил открыть Google и скачать
в качестве фона понравившееся
мне изображение.

7.

Задний фон
Скачанный фон
Фон
itProger
Мой фон 1.0

8.

Игрок
У itProger только 2 анимации:
Бег влево (4 кадра)
Бег вправо (4 кадра)

9.

Игрок
У спрайтов, что нашёл я 10 анимаций. Однако,
в проекте я использовал только 6 из них и
только некоторые кадры:
Прыжок (6 кадров)
Смерть (4 кадра)
Стоит на месте (8 кадров)
Шаг (7 кадров)
Бег (8 кадров)
Заклинание (6 кадров)

10.

Ассеты, которые
добавил позже:

11.

Враги
У itProger только 1 тип врагов —
призраки, которые являются
перемещающейся картинкой.
У меня же 3 типа врагов, каждый из
которых анимирован:
● Обычные скелеты
● Бегущие скелеты
● Скелет-босс

12.

Обычные скелеты
Обычные скелеты у меня - это по сути враги из плейлиста itProger, только с 2мя анимациями:
● Шаг (7 кадров)
● Смерть (4 кадра)

13.

Бегущие скелеты
Бегущие скелеты - это обычные скелеты с другой анимацией перемещения,
которые из-за идеальной пиксельной каллизии способны пробегать под
снарядами игрока.
● Шаг (7 кадров)
● Смерть (4 кадра)

14.

Скелет-босс
Скелет-босс - враг с самым
большим количеством анимаций.
У него их 7:
Шаг
Бег, переходящий в атаку
Смерть
Стоит на месте
1-я атака
2-я атака
3-я атака

15.

Готовые игры:

16.

itProger

17.

Моя игра

18.

Моя игра использует основы и
части игры из плейлиста с канала
itProger, но я сделал её
уникальной за счёт следующих
пунктов:
Моя игра
Как я делал игру по
руководству, а после её
дорабатывал.
● Улучшение визуального
оформления
● Улучшение данных в
плейлисте механик
(Например, лучший эффект
параллакса у фона)
● Новых игровых механик
(Например, босс-скелет)
● Меню

19.

Устройство
кода
Основной цикл
У всех игр написанных на языке
Python с использованием
библиотеки Pygame главной
частью кода является цикл,
который выполняется постоянно,
пока работает программа.
Я создал несколько переменных,
которые будут показывать
активна та или иная сцена.

20.

Главный цикл
1. Импорт библиотек;
2. Инициализация модулей;
3. Создание переменных для
реального времени и кадров в
секунду;
4. Главный цикл;
5. Обновление изображения экрана;
6. Частота обновления цикла.

21.

Импорт переменных и изображений
1. Указать файл с кодом из которого нужно импортировать переменные.
2. Перечислить все переменные, которые нужно импортировать из
указанного файла.

22.

Загрузка изображений
1. Загрузить изображение в код, указав путь к изображению;
2. Конвертировать изображение в удобный для Pygame формат;
3. Создать маску для каждого кадра (для идеальной пиксельной коллизии);
4. Объединить изображения и маски в списки.

23.

Загрузка аудио
1. Создать переменную, отвечающую за громкость группы звуков;
2. Загрузить звук, указав путь к аудиофайлу;
3. Задать громкость звука (В моём случае лучше умножить коэффициент на
переменную, отвечающую за громкость группы звуков. Тогда, чтобы
изменить громкость группы звуков достаточно будет изменить только
одну переменную, а не несколько)

24.

Окно приложения
1. Указать размеры окна в пикселях;
2. Задать режим окна (Изменяемый / фиксированный / полноэкранный);
3. Задать название окна и иконку приложения.

25.

Много переменных
Далее до главного цикла я создавал очень много разных переменных.
Некоторые из них отвечали за:
Скорость перемещения чего либо
Стартовые позиции игрока / врагов / снарядов (магии)
Максимальное количество здоровья / маны
Задержки во времени для повторного выполнения действия
Переменные, показывающие какой кадр из анимации отображать
Пустые списки для врагов / снарядов (магии)
Области взаимодействия курсора с кнопками
Текущая сцена (например, меню настроек аудио / главное меню и т.п.)
И т.п.

26.

Источники
Информационные источники:
Статистика о востребованности языков программирования:
○ https://github.blog/news-insights/research/the-state-of-open-source-and-ai/#the-most-popularprogramming-languages
Курс о создании видеоигры на Pygame:
○ https://www.youtube.com/watch?v=jZL0Hh1DcM&list=PLDyJYA6aTY1mLtXrGH55paZHFjpqHdDol
Работа масок в библиотеке Pygame:
○ https://www.youtube.com/watch?v=tJiKYMQJnYg
○ https://www.youtube.com/watch?v=8PtKtyK-iVg
Создание меню в библиотеке Pygame:
○ https://youtu.be/0RryiSjpJn0?si=x7ACQ1U0UB9tvUDe

27.

Источники
Информационные источники:
Работа звуков в библиотеке Pygame:
○ https://www.youtube.com/watch?v=z0aOffHrTac&t=152s
Непостоянность кадров в секунду в Pygame:
○ https://www.youtube.com/watch?v=OmkAUzvwsDk
Ввод действий компьютерной мыши в библиотеке Pygame:
○ https://www.youtube.com/watch?v=vhNiwvUv4Jw&t=115s
Список названий кнопок ввода в библиотеке Pygame:
○ https://www.bzfar.org/publ/algorithms_programming/programming_languages/python_kljuchi_
klaviatury/42-1-0-120

28.

Источники
Сайты с программным обеспечением:
Официальный сайт графического редактора GIMP:
○ https://www.gimp.org
Официальный сайт среды разработки Thonny для языка программирования Python:
○ https://thonny.org
Сайт для разделения изображения на спрайты:
○ https://ezgif.com/sprite-cutter?err=expired

29.

Источники
Сайты с ассетами:
Спрайты для игрового персонажа:
○ https://craftpix.net/freebies/free-wizard-sprite-sheets-pixel-art/?num=3&count=114&sq=orc&pos=2
Спрайты для врагов:
○ https://craftpix.net/freebies/free-skeleton-pixel-art-sprite-sheets/
Изображение заднего фона видеоигры:
○ https://t3.ftcdn.net/jpg/10/36/29/04/360_F_1036290444_AuwVpFWWxx0ON3uHe2yaBaLj2ATsF
1Bo.jpg
English     Русский Rules