Стрельба по цели
Основные функции в данной работе:
1. updateTarget - Обновляет положение квадрата-цели, добавляя скорость к его координатам, проверяет, достиг ли квадрат границ окна, и изменяет направление движения.
2. drawTarget - Отвечает за отрисовку квадрата-цели, он использует метод fillRect для рисования прямоугольника с координатами и размерами, заданными в объекте target.
3. drawGun - Рисует орудие в виде прямоугольника, который находится внизу экрана и центрирует его относительно текущей координаты x орудия.
4. updateArrows - Обновляет положение стрел, уменьшая их координату y (стрела движется вверх).
Если стрела пересекает цель, она удаляется из массива, а счётчик попаданий (score) увеличивается.
Если стрела уходит за верхнюю границу экрана, считается промахом: стрела удаляется из массива, увеличивается счётчик промахов (misses), и выводится сообщение (сдвиньтесь правее/левее).
5. drawArrows - Отвечает за отрисовку всех стрел из массива arrows, каждая стрела рисуется с помощью метода fillRect.
6. gameLoop - Основной игровой цикл, он очищает холст (clearRect) для подготовки к следующей отрисовке, вызывает функции обновления (updateTarget, updateArrows) и отрисовки (drawTarget, drawGun, drawArrows) и повторяет цикл с помощью requestAnimationFrame, обеспечивая плавную анимацию.