01 ОБ ИГРЕ
Знакомство с проектом
Сюжет:Сюжет в игре минималистичный, так как это аркада. Игрок выступает в роли пилота космического истребителя, который защищает сектор от нашествия вражеских кораблей. Цель пилота — продержаться как можно дольше и уничтожить максимальное количество противников, не дав им прорвать оборону.Механика:Управление: Игрок управляет кораблем с помощью мыши (или пальца на сенсорном экране). Корабль плавно следует за курсором.Стрельба: Оружие стреляет автоматически с заданной задержкой (кулдауном). Игроку не нужно нажимать кнопку выстрела.Враги: Сверху экрана появляются вражеские объекты. Они движутся вниз с разной скоростью и имеют разный размер (и, соответственно, запас прочности).Жизни: У игрока есть 3 жизни. При столкновении с врагом жизнь отнимается, а корабль игрока взрывается.Взрывы: При уничтожении врага срабатывает система частиц — осколки разлетаются в стороны и затухают, создавая эффект взрыва.Счет: За каждого уничтоженного врага начисляются очки. При потере всех жизней игра заканчивается, и показывается итоговый результат.Цели:Основная цель игрока: Набрать максимальное количество очков, уничтожая врагов, и как можно дольше продержаться, уворачиваясь от столкновений.Цель проекта: Продемонстрировать навыки работы с HTML5 Canvas, JavaScript (игровой цикл, обработка событий, математика коллизий) и показать умение создавать интерактивные приложения в браузере.Особенности проекта:Кроссплатформенность: Игра работает как на ПК (управление мышью), так и на смартфонах (управление свайпами/тачем), благодаря обработке разных типов событий.Визуальный стиль: Использован неоновый стиль с эффектами свечения (shadowBlur), что придает игре современный аркадный вид.Динамический фон: Реализован эффект движущихся звезд (звездный фон), что создает ощущение полета и глубины космоса.Отсутствие зависимостей: Проект написан на чистом JavaScript (Vanilla JS), без использования сторонних библиотек или игровых движков. Весь код находится в одном файле HTML.Оптимизация: Используется Canvas API и расчет коллизий по теореме Пифагора (через Math.hypot), что обеспечивает плавную работу игры (60 FPS).
#<canvas> — основной тег#на котором рисуется игра#панель счёта#экран проигрыша). <span