Pull to refresh

Comments 4

1 игра != 1 canvas

Это, кстати, одно из самых главных правил. В своёй статье я тоже об этом писал (пункт 21) и для сравнения взял отрисовку градиента напрямую и из буфера. Из буфера — в пять раз быстрее)
По поводу 1 игра != 1 canvas добавлю от себя, что самый простой и быстрый вариант — это старый добрый спрайтовый подход.

При запуске игры нагенерили спрайты с которыми дальше будете работать, отрисовали их в бэк-буфере ( можно или бак-канвас или imageData ), выкинули на экран и т.д. По сравнению с простой отрисовкой на канвасе скорость получается гораздо более привлекательная
Есть еще один интересный подход, позаимствованный со спектрыма еще, когда бэкбуферов два — один для динамики, второй для фона ( фон медленней меняется чем динамика — например пероснаж и объекты вокруг него — оотвтественно все это отрисовывается в разных потоках ) — при выводе сначала выводится бэкбуфер с фоном потом сверху бэкбуфер с динамикой.
ошибку нашел
ImageData = context.createImageData(int x, int y, int w, int h)

не createImageData а getImageData
Sign up to leave a comment.

Articles