Я могу дать одну идею, вместо того, чтобы иметь только один холст, вы можете управлять 3 холстами и устанавливать их в 3 делителя с абсолютным позиционированием, чтобы каждый дел был построен поверх предыдущего с прозрачным фоном.
- один для фона
- один для игрока
- один для объектов на карте (которые могут перекрывать игрока)
Холст будет большечем видимая игровая площадка (можно управлять с помощью настроек переполнения CSS).Игрок всегда будет в центре детской площадки.При перемещении вместо перерисовки фона и верхнего слоя вам просто нужно обработать положение div, браузер выполнит графическое задание.
После этого возникает проблема загрузки новых фоновых плиток, которые могут быть обработаны с некоторыми скрытымипредварительная загрузка холста.И этот способ наложения холста может быть применен к другим слоям (слой активных маркеров, слои других игроков и т. Д.), Это «спрайт-слой-в-div», где движок графики браузера выполняет большую часть окончательной визуализации изображения экрана.