@sashka123456765432

RequestAnimationFrame, нужна помощь?

let cvs            = document.getElementById("canvas");
    ctx            = cvs.getContext("2d");
    /* Изображения */
    bird           = new Image();
    bg             = new Image();
    pipeUp         = new Image();
    pipeBottom     = new Image();
    fg             = new Image();
    bird.src       = "flappy_bird_bird.png";
    bg.src         = "flappy_bird_bg.png";
    pipeUp.src     = "flappy_bird_pipeUp.png";
    pipeBottom.src = "flappy_bird_pipeBottom.png";
    fg.src         = "flappy_bird_fg.png";
    /* Координаты Птицы */
    xPos           = 10;
    yPos           = 150;

document.addEventListener("keydown", moveUp);

function moveUp() {
    yPos -= 20
}

function draw() {
    ctx.drawImage(bg, 0, 0);
    ctx.drawImage(pipeUp, 100, 0);
    ctx.drawImage(pipeBottom, 100, 332);
    ctx.drawImage(fg, 0, cvs.height - 118);
    ctx.drawImage(bird, xPos, yPos);

    yPos += 1;
    requestAnimationFrame(draw)
}

fg.onload = draw;


Почему когда написать requestAnimationFrame работает функция moveUp, а когда убираешь requestAnimationFrame функция престает работать
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
Читайте про event loop, там по хорошему нужно перерисовывать только при наличии изменений или тротлинг ставить про это тоже в книгах, например у Фленегана почитаете. Заодно почитайте про рекурсию и как ее правильно в JS готовит, но без ивент лупа вам это знание ничего не даст
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект