Введение
В последние годы Интернет стал неотъемлемой частью нашей повседневной жизни. Использование игр приобрело заметную роль в этой вселенной, позволяя миллионам людей получать доступ к развлечениям быстро и бесплатно.
Наш заказчик сделал срочный заказ: необходимо разработать игру и воплотить желание заказчика в реальность! Все что вам необходимо – это реализовать логику игры.
Название игры: Герой.
Технологии этого модуля: HTML 5, CSS3, JavaScript, jQuery, Граф. дизайн, PHP
Время модуля: 3 часа
Вам необходимо реализовать функционал игры. Готовый шаблон и все необходимые файлы предоставлены. Использование шаблона обязательно.
описание проекта и задач
В игре используются элементы, описанные ниже:
1. Герой: элемент, который контролируется игроком.
2. Чудовища: элементы, которые необходимо уничтожить игроку.
3. Шкала жизней (HP): шкала, отражающая запас жизненной энергии игрока.
4. Шкала энергии (MP): шкала, отражающая запас магической энергии игрока.
5. Имя игрока: имя игрока, которое он ввел на стартовом экране.
6. Уничтожения: количество уничтоженных чудовищ.
7. Панель умений: умения, которые может использовать игрок, для сражения с чудовищами.
Игра должна начинаться со стартового экрана с инструкцией к игре, полем для ввода имени игрока и кнопкой "Начать", если поле имени пустое, то кнопка не активна. Инструкция к игре должна быть представлена анимировано.
Игровой функционал:
1. По нажатию на кнопку "Начать игру" игрок попадает на экран игры. Изначально у игрока 0 очков, 100 HP и 100 MP, таймер 00:00 (в формате mm:ss).
2. В начале игры запускается таймер, персонаж располагается в левой стороне игрового поля, что является начальной границей карты.
3. Игрок может передвигаться с помощью клавиш (D и A): налево и направо. Когда игрок находиться в левой половине видимой части экрана фон не передвигается, а «замирает». Когда игрок доходит центральной точки он остается в центральной части экрана, происходит анимация его передвижения, а фон в свою очередь начинает «прокручиваться». При этом когда фон достигает конца, игрок должен передвигаться в правую часть экрана.
4. По мере прохождения игры игроку встречаются чудовища, которые движутся справа налево. Игра заканчивается, как только игрок доходит до конца карты и достигает правого местоположения или происходит поражение героя, а таймер останавливается.
5. За каждое убитое чудовище дается 1 очко.
6. Если жизни игрока кончаются (0HP), то игра заканчивается.
7. Жизни игрока (HP) регенерируются со скоростью 1НР/с.
8. Энергия игрока (MP) регенерируется с каждой секундой на 3MP/с.
9. Герой может использовать умения. Каждое умение тратит какое-то количество MP и имеет время перезарядки. Вот список умений:
![]() | ![]() |
10. При нажатии на кнопку ESC игра ставится на паузу, а при повторном нажатии - снимается с паузы. Во время паузы останавливаются все интерактивные действия, а также вся анимация, таймер тоже замирает, умениями пользоваться нельзя, игрок и чудовища не двигаются.
11. При ударе мечом урон наносится один раз каждому чудовищу, который находится в зоне поражения, т.е. если перед игроком находится одно чудовище, то он получит 15 ед. урона.
12. Чудовища должны следовать за игроком. Если игрок пробежал чудовище, то оно должно развернуться и следовать за ним.
13. Когда игрок идет обратно, он поворачивается в обратную сторону.
14. Каждый из монстров имеет свою скорость атаки и скорость движения, которая не превышает скорость движения игрока. На экране не должно находиться более 5 монстров. Вот описания монстров:
![]() | ![]() | ![]() |
15. Ваша игра должна работать без отображения JavaScript ошибок или сообщений в консоли браузера.
16. Ваш HTML/CSS и JavaScript код должен быть организован и понятным. Используйте корректные наименования переменных, методов и не забывайте оставлять комментарии для дальнейшей поддержки в будущем.
17. После завершения игры результаты должны быть сохранены на сервере и показана таблица с рейтингом.
18. Вам дан PHP файл, который сохраняет данные в базу данных и возвращает массив с результатами. Используйте этот файл для сохранения результатов и получения данных для рейтинга. В этом файле можно изменять только данные доступа к базе данных (логин, пароль, имя базы данных). Этот файл принимает следующий AJAX запрос:
· метод: POST
· username - имя пользователя
· score - количество уничтоженных чудовищ
· time – время игры
В ответ возвращается массив с данными:
[
{"id":"1","username":"Player 1","score":"10","time":"20"},
{"id":"2","username":"Player 2","score":"8","time":"30"}
]
19. После завершения игры открывается экран результатов, в котором формируется таблица с лучшими 10 игроками, если игрок не вошел в таблицу, то выводятся 9 лучших игроков, а в последней строке указывается место и результат игрока только что завершившего игру.
20. Данные в таблице должны быть отсортированы по количеству уничтоженных чудовищ по убыванию. Если несколько строк имеют одинаковое кол-во уничтоженных чудовищ, то они сортируются между собой по времени по возрастанию. Если несколько строк имеют одинаковое количество уничтоженных чудовищ и одинаковое время, то они занимают одинаковую позицию в рейтинге.
21. На экране результатов должна быть кнопка «Играть сначала», которая позволяет начать игру с начала, первый экран не отображается.
Проявите все свои навыки для создания качественной игры, с анимацией и интерактивностью.