Правильное увеличение (zoom) карты из тайлов

  1. 8 г. назад
    x*zoomX, y*zoomY

    При обычном раскладе, если Увеличивать тайловый уровень (т.е. как-бы приближать камеру к тайлам), то возникают Щели и неровности. К примеру — одни и те-же пиксели на тайлах разной ширины могут быть разного размера. Но все-же главная проблема — это щели между тайлами, которые иногда появляются.

    Как сделать что-бы все было четко и ровно?

  2. devolonter

    5 Jun 2014 Администратор

    Советую ознакомиться с хорошей статьей на эту тему — «У прозрачных пикселей тоже есть чувства или артефакты png'шек с прозрачностью» . Из нее становится ясно почему так происходит.

    Решение:
    — Создаем однопиксельную отбивку вокруг каждого тайла. Она не обязательно должна быть прозрачной. Будет лучше, если она будет дублировать пиксели слева, справа, сверху и снизу соответственно.

    — Загружаем изображение с флагом XYPadding, при этом указываем ширину кадра, с учетом добавленных отступов. Флаг XYPadding сообщает о том, что каждый кадр загружаемого изображения содержит отступы по осям X и Y. При этом методы Width и Height будут возвращать ширину и высоту без учета отбивки, т.е. как и прежде.

    — Если до этого использовалась функция DrawImageRect, заменяем ее на DrawImage и используем id тайла в качестве параметра frame

или зарегистрируйтесь чтобы комментировать!