@fintank

Как оптимизировать вывод графики в игре (js/canvas)?

Пример: obsuditor.ddns.net/ftt

-- Изображение выводится на canvas размером с окно браузера.
-- Изображение состоит из закешированных в памяти кусков 100x100 (или 140x140), которые есть пиксельные буферы (каждый кусок начинает жизнь с помощью getImageData). На каждый кадр закешированные куски размещаются на большом canvas несколькими вызовами функции putImageData(). Плохо: куча операций копирования пикселей.
-- Когда вы стреляете в кирпич и его нужно убрать, перерисовывается кусок, в котором лежит этот кирпич и новая версия куска кладётся в кеш вместо старой. Бедный уборщик мусора.

JS-профайлер в хроме говорит, что много времени съедает putImageData() и fillText().

Какие принципиально другие подходы можно применить для реализации движения мира вокруг танка без перерисовывания canvas на каждый шаг (пускай даже с помощью закешированных кусков)? Спасибо.

Брать готовые движки не предлагать.
  • Вопрос задан
  • 2651 просмотр
Пригласить эксперта
Ответы на вопрос 2
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Заменить putImageData на drawImage
Можно попробовать взять www.pixijs.com для движка
Ответ написан
Keyten
@Keyten
WebGL.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы