Бешенный пакмен
Игра "Crazy pacman" аркадного типа, где целья является поразить призрака и самому не попасть под снаряд. Пакмен - пользователь. Призрак - противник. Управление классическое:
ЛКМ - стрельба
"W","A","S","D"(английская раскладка) - управление.
Реализация игры сожержит следующие функции:
* randomSpawnNearCorner - Генерирует случайную позицию около одного из четырех углов холста (случайные координаты в пределах 100 пикселей от этого угла).
* respawnTarget - Вызывает randomSpawnNearCorner и направляет его к игроку, вычисляя угол между врагом и игроком.
* resetGame - Перезапускает игру, возвращая игрока в начальную позицию, обнуляя счетчик убийств и очищая все снаряды.
* updateTargetPosition - Функция обновляет координаты врага, изменяет направление при столкновении с границами холста и проверяет, нужно ли врагу стрелять.
* updatePlayerPosition - Проверяет, какие клавиши нажаты, и обновляет координаты игрока, ограничивая его движение в пределах холста.
* fireProjectile - Вычисляет угол между игроком и целевыми координатами, создает новый снаряд и добавляет его в массив projectiles.
* fireTargetProjectile - Добавляет новый снаряд врага, направленный в игрока и добавляет его в массив targetProjectiles.
* updateProjectiles - Обновляет позиции всех снарядов игрока и врага, проверяет столкновения и удаляет снаряды, вышедшие за границы холста.
* drawProjectiles - Отрисовывает все снаряды игрока и врага на холсте.
* drawPT - Отрисовывает игрока и врага на холсте.
* drawKills - Отображает счетчик убийств на холсте.
* gameLoop - Функция очищает холст, обновляет позиции игрока и врага, обновляет и рисует снаряды, рисует игрока и врага, и отображает счетчик убийств. В конце вызывает себя снова с помощью requestAnimationFrame.