Программирование на Python. Урок 13. Игровое меню и события презентация

Содержание

Слайд 2

Немного повторим прошлый урок Урок 13. Игровое меню и события

Немного повторим прошлый урок

Урок 13. Игровое меню и события

Слайд 3

Урок 13. Игровое меню и события Что будет на уроке

Урок 13. Игровое меню и события

Что будет на уроке сегодня?

Добавим игровое

меню

Добавим вращающийся фон

Настроим событие смерти игрока ведущее в игровое меню

Слайд 4

Вращающийся фон

Вращающийся фон

Слайд 5

Класс с фоном Урок 13. Игровое меню и события Мы

Класс с фоном

Урок 13. Игровое меню и события

Мы уже с вами

создавали классы несколько раз. И здесь будет всё то же самое. В свойства необходимо добавить всё нужное для вращения:
Слайд 6

Класс с фоном Урок 13. Игровое меню и события Добавить

Класс с фоном

Урок 13. Игровое меню и события

Добавить функцию rotate и

вызывать её внутри update:
Слайд 7

Класс с фоном Урок 13. Игровое меню и события Не

Класс с фоном

Урок 13. Игровое меню и события

Не забудьте добавить ко

всем спрайтам в основном файле игры:
Слайд 8

Игровое меню

Игровое меню

Слайд 9

Функция вывода текста на экран Урок 13. Игровое меню и

Функция вывода текста на экран

Урок 13. Игровое меню и события

Это точно

такая же функция, как и в прошлой игре, поэтому просто добавим её в наш основной файл игры:
Слайд 10

Функция игрового меню Урок 13. Игровое меню и события Функция

Функция игрового меню

Урок 13. Игровое меню и события

Функция игрового меню по

сути представляет из себя набор вызовов функции draw_text с отображением определенного текста в нужных частях экрана. Создадим данную функцию прямо перед игровым циклом и добавим в неё сначала вывод заднего фона, а потом вывод нужного нам текста:
Слайд 11

Ожидание нажатия клавиши Урок 13. Игровое меню и события Чтобы

Ожидание нажатия клавиши

Урок 13. Игровое меню и события

Чтобы наше меню отображалось

постоянно и исчезло только в момент нажатия клавиши, нам придется сделать бесконечный цикл внутри, который будет отслеживать нажатие клавиши, а также нажатие на крестик окна (вдруг захотим закрыть игру так и не начав играть). Организация цикла ожидания очень похожа на организацию игрового цикла:
Слайд 12

Перерыв 10 мин

Перерыв 10 мин

Слайд 13

Включение игры и рестарт

Включение игры и рестарт

Слайд 14

Признак конца игры Урок 13. Игровое меню и события Теперь

Признак конца игры

Урок 13. Игровое меню и события

Теперь нам необходимо немного

изменить наш игровой цикл, так чтобы он в самом начале отображал наше игровое меню. А также возвращался всякий раз, когда игрок умирал.
Для этого до игрового цикла мы заведем переменную которая будет определять конец игры. Сделать это нужно до игрового цикла. И так как наша игра еще не началась, то запишем в неё значение True:

А внутри игрового цикла мы проверим её значение. И если она будет равна True, то просто включим наше игровое меню, а состояние конца игры переключим в False:

Слайд 15

Событие смерти игрока Урок 13. Игровое меню и события Теперь

Событие смерти игрока

Урок 13. Игровое меню и события

Теперь осталось только найти

событие, когда игрок умирает и поменять переменную run, которая отвечает за игровой цикл на переменную game_over, которая отвечает за конец игры:
Слайд 16

Воскрешение игрока и рестарт Урок 13. Игровое меню и события

Воскрешение игрока и рестарт

Урок 13. Игровое меню и события

Всё работает отлично,

мы действительно попадаем с вами обратно в игровое меню. Правда есть одна проблема - заново запустить игру по второму разу не получится. А всё потому, что у нас значение здоровья игрока как было 0, так и осталось 0. Нужно это изменить, дописав несколько команд внутри проверки на конец игры.
Просто пересоздадим игрока, просто вызвав у него функцию, которая запишет все его свойства заново:
Слайд 17

Респаун мобов Урок 13. Игровое меню и события Игрок перерождается

Респаун мобов

Урок 13. Игровое меню и события

Игрок перерождается с нуля, а

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

Респаун мобов Урок 13. Игровое меню и события А создавать

Респаун мобов

Урок 13. Игровое меню и события

А создавать мы их будем

именно в момент отображения игрового меню. Правда сначала нам необходимо очистить группу от старых спрайтов на случай, если они там останутся после проигрыша игрока:
Слайд 19

Уровни в игре

Уровни в игре

Слайд 20

Переменная с уровнями Урок 13. Игровое меню и события Создается

Переменная с уровнями

Урок 13. Игровое меню и события

Создается как обычная переменная.

До игрового цикла. Начальный уровень равен 1:
Слайд 21

Генерация мобов в зависимости от уровня Урок 13. Игровое меню

Генерация мобов в зависимости от уровня

Урок 13. Игровое меню и события

Давайте

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

Управление уровнем Урок 13. Игровое меню и события Должно происходить,

Управление уровнем

Урок 13. Игровое меню и события

Должно происходить, когда мобов не

останется. Идем в игровой цикл и сразу под событием где фиксируется попадание пули в моба пишем проверку:

Также нам необходимо сбросить уровень до 1, когда игрок умрет и код перейдет в наше меню. Поэтому добавим еще там строчку кода:

Слайд 23

Результат Урок 13. Игровое меню и события Весь проект с готовыми файлами можно скачать здесь: https://github.com/ronmount/gb_shooter/archive/refs/heads/lesson5.zip

Результат

Урок 13. Игровое меню и события

Весь проект с готовыми файлами можно

скачать здесь:
https://github.com/ronmount/gb_shooter/archive/refs/heads/lesson5.zip
Слайд 24

Изучили способы контроля жизни объектов Повторили способ отображения жизней на

Изучили способы контроля жизни объектов
Повторили способ отображения жизней на экране
Научились делать

покадровую анимацию
Добавили Жизни игровым объектам
Отобразили здоровье игрока на экране
Создали Взрывы в момент уничтожения мобов

Итоги

Урок 13. Игровое меню и события

Слайд 25

Урок 13. Игровое меню и события На следующем занятии: Разделимся

Урок 13. Игровое меню и события

На следующем занятии:

Разделимся на команды

Начнем групповую

разработку над новой игрой
Слайд 26

Немного повторим

Немного повторим

Слайд 27

Почему для игрового меню нужен бесконечный цикл?

Почему для игрового меню нужен бесконечный цикл?

Слайд 28

Можно ли менять положение и надписи игрового меню?

Можно ли менять положение и надписи игрового меню?

Слайд 29

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

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

Слайд 30

Как pygame понимает, что нужно включить следующий уровень?

Как pygame понимает, что нужно включить следующий уровень?

Слайд 31

Ваши вопросы Урок 13. Игровое меню и события

Ваши вопросы

Урок 13. Игровое меню и события

Слайд 32

Слайд 33

Домашнее задание

Домашнее задание

Слайд 34

Заполни, пожалуйста, форму обратной связи по уроку

Заполни, пожалуйста, форму обратной связи по уроку

Имя файла: Программирование-на-Python.-Урок-13.-Игровое-меню-и-события.pptx
Количество просмотров: 10
Количество скачиваний: 0