Tiled2GM —  скачать Tiled2GM Converter (2,5mb)

Tiled map loader


При разработке нашей игры Journey To Hammerdale мы столкнулись с весьма ограниченными возможностями встроенного в Game Maker редактора комнат, поэтому начали поиск альтернатив. Нужен был простой и в то же время удобный редактор карт, с поддержкой множества слоёв (с удобным управлением ими). Довольно быстро был найден такой редактор — Tiled Map Editor. Его возможности полностью обеспечивали наши запросы и поэтому был сделан загрузчик карт tiled для Game Maker.

Помимо тайлов, редактор позволял расставлять объекты, а также задавать произвольные свойства как объектам, так и слоям и всей карте. Поддержка этого была также добавлена в загрузчик. Например, в свойствах карты прописывалось название комнаты и цвет фона. В свойствах объекта — какие-то их конкретные свойства (например, скорость перемещения пилы). Также была добавлена поддержка отражения тайлов по горизонтали и вертикали и прозрачность слоёв.


Использование.

Процесс не сложен, хотя и требует некоторых действий.

Сначала нужно нарисовать карту в Tiled. Карта может быть произвольного размера, содержать произвольное количество слоёв и объектов. Также можно задавать произвольные свойства карте, слоям и объектам (об обработке свойств написано ниже).

Далее запускаем Tiled2GMConverter, в котором указываем нужную карту. Файл обработается и сохранится с расширением .lvl

Осталось открыть TiledLoader в Game Maker и произвести настройку: добавить свои объекты и, если нужно, обработчики свойств.

Загрузка карты вызывается в событии Create объекта o_controller.

load_room('loader_demo.lvl')

здесь указывается имя файла, в котором сохранена карта.

В скрипте define_objects нужно задать свои объекты (в том же порядке, что и в objects-tileset). Если на карте используется объект, которого нет в этом списке, то будет создан специальный объект, который показывает, что объект не задан (он выглядит как черный круг с красным крестом) — o_not_defined.

В скрипте check_property идёт обработка свойств карты и слоёв. В качестве примера стоит обработка свойств комнаты bgcolor, задающей цвет фона и name, задающей заголовок окна. Для слоя идёт обработка свойства depth, задающего глубину слоя. Если глубина слоя не задана, то слой создаётся с глубиной 10000.

Настройки вида можно поменять в скрипте load_room, в самом конце, в команде room_set_view.

Обработка свойств объектов производится в событии create нужных объектов. В качестве примера стоит обработка одного свойства у объекта o_skeleton и обработка нескольких свойств у объекта o_doctor.

Изображения тайлсетов должны находиться в папке tilesets, а загружаемые карты — в папке maps.

Для просмотра карты можно использовать клавиши управления курсором.


Ограничения.

В данный момент есть несколько ограничений на файл, обрабатываемый конвертером:

  • Кодировка данных должна быть base64 (поставьте это в настройках tiled)

 

  • Объекты должны быть нарисованы через инструмент "тайл-объект". Другие типы объектов не поддерживаются.

  • Названия файлов-тайлсетов должны быть прописаны внутри карты, а не в отдельном файле (это произойдёт, если в редакторе добавить внешний набор тайлов).

например:
<tileset firstgid="1" source="objects.tsx" />
<tileset firstgid="626" name="tileset99999" tilewidth="32" tileheight="32">
   <image source="tileset99999.png" width="800" height="800" /> 
</tileset>

строка
<tileset firstgid="1" source="objects.tsx" />
указывает на внешний подключаемый файл, в котором написаны параметры тайлсета:
<tileset name="objects" tilewidth="32" tileheight="32">
   <image source="objects.png" width="800" height="800" /> 
</tileset>

Пока что конвертор не работает с подгружаемыми файлами,
поэтому данные из подгружаемого файла нужно внести подобно записи
<tileset firstgid="626" name="tileset99999" tilewidth="32" tileheight="32">
   <image source="tileset99999.png" width="800" height="800" /> 
</tileset>

В данном примере в итоге должно получиться:
<tileset firstgid="1" name="objects" tilewidth="32" tileheight="32">
   <image source="objects.png" width="800" height="800" /> 
</tileset>

  • Не поддерживается вращение тайла (90/270 градусов)

Контакты.

Если вы обнаружили ошибку, либо у вас есть какие-то предложения, вы можете написать мне, используя контактную форму (выбрать Dmi7ry)
 


Ссылки.

http://www.mapeditor.org — Tiled map editor.
http://j2h.ru — Devlog of our game "Journey To Hammerdale".
Tiled2GM —  скачать Tiled2GM Converter (2,5mb)