Для того чтобы запустить или загрузить игру, необходимо перейти по ссылке https://qualityworkstudio.ru
Игру можно запустить в браузере, нажав на кнопку Play Game, или загрузить для Windows | Android | файлом .jar. |
Внимание! Если игра запускается первый раз в браузере, то при проблеме с интернетом возможна длительная загрузка.
После запуска игры в браузере, можно изменить некоторые настройки для корректного взаимодействия с игрой. Например, если запуск происходит с мобильного устройства, то нужно выбрать Mobile Mode, а только затем нажать Continue.
Скачать можно также здесь.
Передвижение осуществляется клавишами WASD, вращение - мышкой, стрельба ЛКМ, перезарядка на R.
За передвижение отвечает джойстик, расположенный в левом нижнем углу. За вращение и стрельбу - джойстик, расположенный в правом нижнем углу.
Наш проект представляет собой создание кроссплатформенной 2D игры - головоломки с видом сверху, созданной на языке программирования Java c помощью фреймворка LibGDX.
Описание игры: Вы находитесь на космическом корабле, который ложно взял курс на центральную черную дыру кластера Феникс. На корабле вышли из строя роботы-хранители. Вам нужно как можно скорее покинуть станцию, для того чтобы спасти свою жизнь, но для этого вам придется решить все загадки и уничтожить роботов. Поторопитесь, ведь горизонт событий уже не за горами…
Цель: Целями данного проекта являются:
Наш проект представляется двумя основными частями: веб-сайтом и самой игрой.
Веб-сайт: Для создания сайта использовались:
На языке разметки HTML были написаны 3 секции: Play game, Download и About. В первой секции была добавлена кнопка для перехода к игре, фон которого был убран с помощью команды background-color: rgba(0, 0, 0, 0), альфа значение, равное 0 дает эффект прозрачности. Была также добавлена анимация для кнопки с помощью @keyframes со значениями 0% - color: red, 50% - rgba(0, 0, 0, 0), 100% - color: red. Шрифт кнопки “Play Game” был выбран и импортирован с сайта https://fonts.google.com, так же как и шрифт всего текста на сайте. В шапку были добавлены фирменный логотип QualityWorkStudio и пункты меню с надписями разделов, на которые можно попасть, нажав на эти самые пункты. В файле script.js была реализована плавная прокрутка сайта до выбранного пользователем раздела с помощью функции window.scrollTo, где значение gotoBlockValue является координатой в пикселях раздела, до которого нужно прокрутить сайт, и вычисляется оно с помощью формулы gotoBlock.getBoundingClientRect().top + scrollY - document.querySelector(‘header’).offsetHeigh. Именно сама плавность прокрутки задается этим кодом - behavior: “smooth”. Также в script.js при клике на “меню-бургер” к различным классам добавляется класс “_active” или “_lock” с помощью данного отрезка кода:
iconMenu.addEventListener(“click”, function(e) {
document.body.classList.toggle(‘_lock’);
iconMenu.classList.toggle(‘_active’);
menuBody.classList.toggle(‘_active’);
Эффект исчезновения текста путем применения градиентного фона и background-clip: text; background-attachment: fixed;
Гиперссылки в разделах Download и About были реализованы с помощью<a href="https:.../">Текст гиперссылки</a>
.
Игра: Для запуска игры были созданы такие файлы, как: DesktopLauncher.java HtmlLauncher.java AndroidLauncher.java Данные классы были реализованы с целью запуска игры на разных платформах.
Все звуковые файлы, файлы изображений, JSON файлы лежат в директории assets. Данная директория используется с целью хранения всех основных файлов, не относящихся к java-коду. Все изображения, которые были созданы для игры, сделаны в растровом графическом редакторе GIMP.
В классах *Launcher
создаются экземпляры класса GameSettings
, которые описывают настройки игры для каждой платформы. Например, в AndroidLauncher
у экземпляра класса GameSettings
вызывается метод setMobileMode(true)
, который означает, что будет включен режим мобильного устройства, что обеспечит взаимодействие с игрой с данного устройства. Далее в конструктор экземпляра класса Game
, который является основным классом игры, передается объект класса GameSettings
.
Экран настроек
Класс Game реализует интерфейс ApplicationListener
, содержащий методы, которые вызываются при создании приложения, возобновлении, рендеринге, остановке и уничтожении. В основном, класс Game отвечает за обработку экранов, которые в свою очередь отвечают за обработку некоторого одного аспекта игры, и несет в себе информацию о ее настройках и ассетов, которая она использует.
При запуске игры появляется экран настроек в том случае, если она была запущена в браузере и прошла предварительная загрузка, поскольку тип устройства не всегда можно определить, и таким образом пользователю дается возможность настроить управление под себя. В остальных случаях сразу появляется экран загрузки. После этого устанавливается основной экран, где игрок оказывается по центру в стартовой локации. Если текущее соотношение сторон экрана не удовлетворяет исходным игровым параметрам, то вас перебросит на экран, отвечающий за регулировку этих соотношений.
Изображения с различных устройств:
Основной экран
Экран регулировки соотношений
Управление передвижением игрока осуществляется через клавиши WASD, стрельба ЛКМ, перезарядка оружия воспроизводится на клавишу R, поворот игрока - с помощью мыши. В случае мобильного устройства за управление передвижения игрока отвечает джойстик, расположенный в левом нижнем углу экрана, за поворот и стрельбу - джойстик, расположенный в правом нижнем углу экрана.
Сверху расположено время таймера, по истечении которого игра завершается: появится экран о поражении, предоставляющий возможность начать игру заново. Время идет только в сценах, где соответственно присутствует игрок.
За это время надо успеть выполнить все уровни, которые представлены в меню, которое открывается тогда, когда игрок пройдет через дверь, где стоит указатель со стартом. Уровень можно перепройти, но в этом нет необходимости.
Меню уровней
Уровни представляют собой головоломки, которые необходимо решить, чтобы завершить определенный уровень. На некоторых из них существуют враги, способные уничтожить игрока. Здесь игра завершается так же, как и при истечении времени игрового таймера.
Если все уровни были выполнены, то появится экран с победой, где будет предложено пройти игру заново.