Название
РАЗРАБОТКА 2D ИГРЫ
Перед тем, как начать составлять описание проекта мной был более подробно изучен язык Python, а именно библиотека pygame.
Что такое Pygame?
Pygame — набор модулей (библиотек) языка программирования Python, предназначенный для написания компьютерных игр и мультимедиа-приложений. Pygame базируется на мультимедийной библиотеке SDL.
Изначально Pygame был написан Питом Шиннерсом (Pete Shinners). Начиная примерно с 2004/2005 года поддерживается и развивается сообществом свободного программного обеспечения.
Pygame – это библиотека модулей для языка Python, созданная для разработки 2D игр. Также Pygame могут называть фреймворком. В программировании понятия "библиотека" и "фреймворк" несколько разные. Но когда дело касается классификации конкретного инструмента, не все так однозначно.
В любом случае, фреймворк является более мощным по-сравнению с библиотекой, он накладывает свою специфику на особенности программирования и сферу использования продукта. С точки зрения специфики Pygame – это фреймворк. Однако его сложно назвать "мощным инструментом". По своему объему и функционалу это скорее библиотека.
Также существует понятие "игрового движка" как программной среды для разработки игр. По своему назначению Pygame можно считать игровым движком. В то же время, с точки зрения классификации программного обеспечения, Pygame является API для Питона к API библиотеки SDL.
API – это интерфейс (в основном набор функций и классов) для прикладного (часто более высокоуровневого) программирования, который предоставляет, например, та или иная библиотека. SDL – это библиотека, которая работает с мультимедийными устройствами компьютера.
В этом смысле Pygame можно сравнить с Tkinter, который через свои функции и классы предоставляет Питону доступ к графической библиотеке Tk.
Pygame — это «игровая библиотека», набор инструментов, помогающих программистам создавать игры. К ним относятся:
Графика и анимация;
Звук (включая музыку);
Управление (мышь, клавиатура, геймпад и так далее);
Игровой цикл.
В сердце каждой игры лежит цикл, который принято называть «игровым циклом». Он запускается снова и снова, делая все, чтобы работала игра. Каждый цикл в игре называется кадром.
В каждом кадре происходит масса вещей, но их можно разбить на три категории:
Обработка ввода (события).
Речь идет обо всем, что происходит вне игры — тех событиях, на которые она должна реагировать. Это могут быть нажатия клавиш на клавиатуре, клики мышью и так далее.
Обновление игры.
Изменение всего, что должно измениться в течение одного кадра. Если персонаж в воздухе, гравитация должна потянуть его вниз. Если два объекта встречаются на большой скорости, они должны взорваться.
Рендеринг (прорисовка).
В этом шаге все выводится на экран: фоны, персонажи, меню. Все, что игрок должен видеть, появляется на экране в нужном месте.
Время.
Еще один важный аспект игрового цикла — скорость его работы. Многие наверняка знакомы с термином FPS, который расшифровывается как Frames Per Second (или кадры в секунду). Он указывает на то, сколько раз цикл должен повториться за одну секунду. Это важно, чтобы игра не была слишком медленной или быстрой. Важно и то, чтобы игра не работала с разной скоростью на разных ПК. Если персонажу необходимо 10 секунд на то, чтобы пересечь экран, эти 10 секунд должны быть неизменными для всех компьютеров.
Pygame - приложения могут работать под Android на телефонах и планшетах с использованием подмножества Pygame для Android (pgs4a). На этой платформе поддерживаются звук, вибрация, клавиатура, акселерометр. Это довольно важный аспект, т.к. это может быть одна из будущих целей моей игры (размещение ее на Google Play).
После изучения библиотеки pygame, а также просмотра обучающих видеороликов я перешел к составлению описания проекта.
Проект заключается в следующем – первое, что видит пользователь – это меню игры, в котором после нажатия клавиши «Start game» запускается игра, а по нажатии клавиши «Quit» выход соответственно. Для более красивого отображения интерфейса реализована анимация бега Волка, а также изменения цвета кнопки при наведении мышкой. Звуковое сопровождение также присутствует.
После нажатия кнопки открывается окно игры. В левом верхнем углу отображается количество жизней и энергии. Снизу отображается Ваш текущий счет. Реализован прыжок по нажатии клавиши «Пробел» и стрельба Волка по нажатии клавиши «X» (энергия и является счетчиком возможных выстрелов). Также реализовано оповещение текущего кулдауна (время, через которое Волк снова может выстрелить). Создана случайная генерация 3 типов блоков (препятствий). Реализовано столкновение Волка с препятствием и отнимание жизни при их столкновении. Также присутствует случайный вылет Зайца и его стрельба по бегущему Волку (реализация отнимания жизни у Волка на данный момент не реализована), однако убийство Зайца при попадании выстрела Волка в него реализовано (однако Заяц вернётся, чтобы помешать Волку через определенный промежуток времени).
Появление паузы происходит по нажатии клавиши «Esc», выход из нее по нажатии клавиши «Space» возврат к игре.
При проигрыше, т.е. потери всех жизней пользователю предлагается продолжить игру по нажатию клавиши «Space» и выход в меню по нажатию клавиши «Esc».
Рейтинг