21.04.2020
«Основы программирования: ЯП Python»
Год обучения
Групповая работа
Тема: модуль PyGame. Разработка игры. Продолжение предыдущего урока
Цель: написать игру с использование модуля PyGame
Задачи обучающие:
· получить практику использования модуля PyGame;
· реализовать игру посредством ЯП Python 3;
· выучить формулы расстояния между точками;
· реализация функции нахождения расстояния между точками на плоскости и в пространстве средствами Python;
· систематизировать знания обучающихся по данной теме;
· закрепить знания, полученные на предыдущих уроках;
Задачи развивающие:
· развивать умения использовать знания, полученные на уроках информатики, в учебной деятельности;
· развивать логическое мышление, умение обобщать, сопоставлять и применять полученные знания на практике;
· развивать познавательную деятельность обучающихся, развивать умение анализировать происходящие изменения в решении задач;
· развивать познавательный интерес, творческую активность, интеллект;
· развивать интуицию, эрудицию, самостоятельность в суждениях, упорство в достижении цели;
· формирование информационной культуры и потребности приобретения знаний;
· стимулирование познавательного интереса обучающихся по данной теме и дисциплине Информатика и ИКТ в целом.
Задачи воспитательные:
· воспитание творческого подхода к работе, желания экспериментировать;
· профессиональная ориентация и подготовка к трудовой деятельности;
· воспитание информационной культуры, самостоятельности, ответственности;
· развивать культуру общения, воспитывать внимание, сообразительность, находчивость.
ХОД УРОКА
Теория
Создание игр на Python 3 и Pygame: Часть 1
https://habr.com/ru/post/347138/
Многие разработчики приходят в разработку ПО, потому что хотят создавать игры. Не все могут стать профессиональными разработчиками игр, но любой может создавать собственные игры из интереса (а может быть, и с выгодой). В этом туториале, состоящем из пяти частей, я расскажу вам, как создавать двухмерные однопользовательские игры с помощью Python 3 и замечательного фреймворка PyGame.
Мы создадим версию классической игры Breakout. Освоив этот туториал, вы будете чётко понимать, что необходимо для создания игры, познакомитесь с возможностями Pygame и напишете собственный пример игры.
Мы реализуем следующие функции и возможности:
· простые стандартные GameObject и TextObject
· простой стандартный Game object
· простая стандартная кнопка
· файл конфигурации
· обработка событий клавиатуры и мыши
· кирпичи, ракетка и мяч
· управление движением ракетки
· обработка коллизий мяча с объектами игры
· фоновое изображение
· звуковые эффекты
· расширяемая система спецэффектов
Не стоит ожидать, что игра будет очень красива графически. Я программист, а не художник, меня больше интересует эстетика кода. Созданный мной дизайн может неприятно удивить. С другой стороны, у вас будут почти неограниченные возможности по улучшению графики этой версии Breakout. Если вы отважитесь повторять за мной, посмотрите на скриншот:
Краткое введение в программирование игр
Главное в играх — перемещение пикселей на экране и издаваемый шум. Почти во всех видеоиграх есть эти элементы. В этой статье мы не будем рассматривать клиент-серверные и многопользовательские игры, для которых требуется много сетевого программирования.
Основной цикл
Основной цикл (main loop) игры выполняется и обновляет экран через фиксированные интервалы времени. Они называются частотой кадров и определяют плавность перемещения. Обычно игры обновляют экран 30-60 раз в секунду. Если частота будет меньше, то покажется, что объекты на экране дёргаются.
Внутри основного цикла есть три основных операции: обработка событий, обновление состояния игры и отрисовка текущего состояния на экране.
Обработка событий
События в игре состоят из всего, что происходит за пределами управления кода игры, но относится к выполнению игры. Например, если в Breakout игрок нажимает клавишу «стрелка влево», то игре нужно переместить ракетку влево. Стандартными событиями являются нажатия (и отжатия) клавиш, движение мыши, нажатия кнопок мыши (особенно в меню) и события таймера (например, действие спецэффекта может длиться 10 секунд).
Обновление состояния
Сердце любой игры — это её состояние: всё то, что она отслеживает и отрисовывает на экране. В случае Breakout к состоянию относятся положение всех кирпичей, позиция и скорость мяча, положение ракетки, а также жизни и очки.
Существует также вспомогательное состояние, позволяющее управлять игрой:
· Отображается ли сейчас меню?
· Закончена ли игра?
· Победил ли игрок?
Отрисовка
Игре нужно отображать своё состояние на экране, в том числе отрисовывать геометрические фигуры, изображения и текст.
Игровая физика
В большинстве игр симулируется физическое окружение. В Breakout мяч отскакивает от объектов и имеет очень приблизительную систему физики твёрдого тела (если это можно так назвать).
В более сложных играх могут использоваться более изощрённые и реалистичные физические системы (особенно в 3D-играх). Стоит также отметить, что в некоторых играх, например, в карточных, физики почти нет, и это совершенно нормально.
ИИ (искусственный интеллект)
Во многих играх мы сражаемся с компьютерными противниками, или в них есть враги, пытающиеся нас убить. Часто они ведут себя в игровом мире так, как будто обладают разумом.
Например, враги преследуют игрока и знают о его местоположении. В Breakout нет никакого ИИ. Игрок сражается с холодными и твёрдыми кирпичами. Однако ИИ в играх часто очень прост и всего лишь следует простым (или сложным) правилам, обеспечивающим псевдоразумные результаты.