Задать вопрос
@Kim_Soal

Прелоадер в канвас игре — как фактически понять, что все канвас обьекты отрисованы?

Пытаюсь сделать простую но полноценную игру с уровнями и т.д.
Хочу сделать прелоадер, после которого без задержек показался бы нарисованный холст.
А есть несколько очень больших подгружаемый изображений.
Схема подразумевает, что часть, которая отвечает за рисовку не начнет рисовать, если к примеру imagesReady === false;
все подгружаемые картинки я добавляю в массив обьектов, и пытаюсь проверить их готовность и быть отрисоваными вот таким образом
loadResourches(){
        let t = setInterval(()=>{
            let isLoad = this.gameObjects.toLoadResourches.every(item=>{
                return item.object.complete != 0
                    || item.object.naturalHeight != 0;
            });
            if(isLoad){
                this.canvas.go();
                clearInterval(t);
            }
        }, 50);
    }

Картинки вроде как подгружаются, но особенно на слабом компе заметил что после успешного события, на сколько я понимаю, картинок в кэш браузера, все-равно есть задержка в отрисовке, т.к. нужно потратить время на саму рисовку.
Как мне понять, когда канвас уже готов быстро отрисовать первый фрейм ( ведь все последующие фреймы нормально работают на большом фпс ) и убрать прелоадер, есть ли у кого опыт
  • Вопрос задан
  • 126 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы