Similar presentations:
Создание видеоигры на языке программирования 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.
itProger17.
Моя игра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
programming