-
Notifications
You must be signed in to change notification settings - Fork 41
tileMapProcessor
Редактирование тайловых карт может оказаться очень трудоемким процессом, требующим кропотливой подборки для каждого тайла изображения, сочетающегося с соседними тайлами. Автоматизировать этот процесс универсальным способом очень сложно, так как состав и количество тайлов может меняться от проекта к проекту.
Для автоматизации редактирования тайловых карт в конкретном проекте, необходимо написать javascript модуль tileMapProcessor, и подключить его к редактору, путем его присвоения в глобальную переменную Tilemap.tileMapProcessor.
Tilemap.tileMapProcessor = {
onTileEditCallback,
imageToType,
types,
getCellType
};
Пример простого tileMapProcessor имеется в тестовом проекте. В данном примере, tileMapProcessor подбирает правильный тайл пола, с тенью, либо без тени, в зависимости от того, является ли тайл выше стеной, отбрасывающей тень.
tileMapProcessor - это объект, который необходимо присвоить статической переменной Tilemap.tileMapProcessor. При этом данный объект должен содержать следующие свойства:
types - массив, описывающий имеющиеся в проекте виды тайлов. Например стена, пол, вода, лес. Этот массив используется для выпадающего списка в редакторе тайловых карт.
onTileEditCallback - функция, обработчик тайловой карты. Эта функция вызывается, когда разработчик редактирует тайловую карту в тайловом редакторе. В функцию передается ссылка на тайловую карту, координаты тайла, по которому был произведен клик, и тип, который необходимо присвоить данному тайлу. Внутри этой функции необходимо установить ID изображения (вызовом метода setTile), для кликнутого тайла тайловой карты, и всех смежных тайлов, на внешний вид которых изменение типа кликнутого тайла может повлиять.
imageToType - функция, преобразующая ID изображения в тип тайла. Данная функция используется как в редакторе тайлов, для определения типа тайла и проверки изменения типа тайла при клике, так и во время работы игры, в методе createTypedMap.
Объект Tilemap не хранит информацию о типе тайлов, тип тайла высчитывается по его ID изображения, поэтому, наличие метода imageToType необходимо в Thing-Editor проектах, использующих тайловые карты.