@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);
    }

Картинки вроде как подгружаются, но особенно на слабом компе заметил что после успешного события, на сколько я понимаю, картинок в кэш браузера, все-равно есть задержка в отрисовке, т.к. нужно потратить время на саму рисовку.
Как мне понять, когда канвас уже готов быстро отрисовать первый фрейм ( ведь все последующие фреймы нормально работают на большом фпс ) и убрать прелоадер, есть ли у кого опыт
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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