dpablo_escobarr
@dpablo_escobarr

Как реализовать ромбовидную стратегическу карту в Canvas, с сохранением выбора квадратов при наведении?

Не понимаю как сделать так, чтобы после преобразования контекста canvas'a функциями rotate(); translate();
координаты у каждого наложенного квадрата картинкой через drawImage()
смещаются, и поймать координаты относительно самого Canvas, уже не получается. Выходит так что у курсора при наведении на Canvas одни координаты а у смещенных квадратов другие.

Как можно реализовать данную задумку. Есть вариант через ромбовидные png картинки, но после добавления из функцией drawImage()

они всеравно получаются квадратными, и на холсте при наведении курсора на такую картинку, событие срабатывает не корректно.

хочу получить из такого (все работает корректно)

5f9e7ab95a9c8651803043.jpeg

вот такое
5f9e7af47a15a883077138.jpeg

здесь применены
ctx.rotate(45 * Math.PI / 180);
      ctx.translate(200, -250);

и соответственно координаты при наведении на квадрат тайла, выделяется не тот. Спасибо!
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
То, что Вы ищите называется изометрией. Посмотрите примеры: 1, 2. Проверять, в каком тайле Вы находитесь можно при помощи isPointInPath (а сами тайлы создавать через Path2D).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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