Frog-Leap-Game

Форк
0
39 строк · 1.6 Кб
1
export class Fly {
2
    constructor(canvas, ctx) {
3
        this.canvas = canvas;
4
        this.ctx = ctx;
5
        this.width = 10;
6
        this.height = 10;
7
        this.x = Math.random() * canvas.width;
8
        this.y = Math.random() * (canvas.height - 200); // Летают в верхней части экрана
9
        this.speedX = (Math.random() - 0.5) * 5; // Случайное горизонтальное движение
10
        this.speedY = (Math.random() - 0.5) * 5; // Случайное вертикальное движение
11
    }
12

13
    // Мошка
14
    draw() {
15
        // Тело
16
        this.ctx.fillStyle = "black";
17
        this.ctx.fillRect(this.x, this.y, this.width, this.height);
18

19
        // Крылья
20
        this.ctx.fillStyle = "white";
21
        const wingOffset = Math.sin(Date.now() / 100) * 2; // Анимация взмахов крыльев
22
        this.ctx.fillRect(this.x - wingOffset, this.y - 5, 5, 10);
23
        this.ctx.fillRect(this.x + this.width + wingOffset, this.y - 5, 5, 10);
24
    }
25

26
    // Обновление позиции мошки
27
    update() {
28
        this.x += this.speedX;
29
        this.y += this.speedY;
30

31
        // Проверка границ экрана
32
        if (this.x < 0 || this.x + this.width > this.canvas.width) {
33
            this.speedX *= -1; // Отражение от стены
34
        }
35
        if (this.y < 0 || this.y + this.height > this.canvas.height * 0.7) { // Летают только в верхней части экрана
36
            this.speedY *= -1; // Отражение от стены
37
        }
38
    }
39
}
40

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.