@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 функция престает работать
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
Читайте про event loop, там по хорошему нужно перерисовывать только при наличии изменений или тротлинг ставить про это тоже в книгах, например у Фленегана почитаете. Заодно почитайте про рекурсию и как ее правильно в JS готовит, но без ивент лупа вам это знание ничего не даст
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽
25 янв. 2021, в 13:34
3000 руб./за проект
25 янв. 2021, в 13:09
3001 руб./за проект
25 янв. 2021, в 13:08
2000 руб./за проект