Skip to content

tileMapProcessor

vasili.kostin edited this page Aug 21, 2021 · 7 revisions

Автоматизация редактора тайловых карт

Редактирование тайловых карт может оказаться очень трудоемким процессом, требующим кропотливой подборки для каждого тайла изображения, сочетающегося с соседними тайлами. Автоматизировать этот процесс универсальным способом очень сложно, так как состав и количество тайлов может меняться от проекта к проекту.

Для автоматизации редактирования тайловых карт в конкретном проекте, необходимо написать 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 проектах, использующих тайловые карты.

<- Предыдущая страница Следующая страница ->

Связанные темы:

редактор тайловых карт

Tilemap компонент

Clone this wiki locally