--- title: Компонент Tile Map brief: Данное руководство содержит детали поддержки тайловых карт в Defold. --- # Компонент Tile Map *Тайловая карта* --- это компонент, который позволяет собирать, или наносить, тайлы из *Tile Source* на большой сетчатой области. Тайловые карты обычно используются для создания окружения игровых уровней. Также можно использовать *формы столкновений* из источника тайлов в картах для обнаружения столкновений и физических симуляций ([пример](/examples/tilemap/collisions/)). Прежде чем создавать тайловую карту, необходимо создать Tile Source. Обращайтесь к [руководству по источникам тайлов](/manuals/tilesource), чтобы узнать, как их создавать. ## Создание тайловой карты Чтобы создать новую тайловую карту: - Кликните ПКМ в подходящем расположении в браузере *Assets*, затем выберите New... ▸ Tile Map. - Присвойте файлу имя. - Новая тайловая карта автоматически откроется в соответствующем редакторе. ![new tilemap](images/tilemap/tilemap.png) - В свойстве *Tile Source* укажите подготовленный источник тайлов. Чтобы нанести тайлы на тайловую карту: 1. В представлении *Outline* выберите или создайте *слой* для рисования. 2. Выберите тайл для использования его в качестве кисти (нажмите Space чтобы отобразить палитру тайлов) ![Palette](images/tilemap/palette.png) 3. Нанесите тайлы выбранной кистью. Чтобы стереть тайл, либо выберите пустой тайл и используйте его в качестве кисти, либо выберите ластик (Edit ▸ Select Eraser). ![Painting tiles](images/tilemap/paint_tiles.png) Тайлы можно выбирать непосредственно из слоя и использовать выбранное в качестве кисти. Удерживая Shift, кликните по тайлу, чтобы выбрать его в качестве текущей кисти. Удерживая Shift, можно также кликнуть с протяжкой, чтобы выбрать блок плиток для использования в качестве более крупной кисти. Также можно вырезать плитки, удерживая Shift+Ctrl, или стереть их, удерживая Shift+Alt. Для поворота кисти по часовой стрелке используйте Z. Для отражения по горизонтали — X, а для отражения по вертикали — Y. ![Picking tiles](images/tilemap/pick_tiles.png) ## Добавление тайловой карты в игру Чтобы добавить тайловую карту в игру: 1. Создайте игровой объект для хранения тайловой карты. Игровой объект может находиться в файле или быть создан непосредственно в коллекции. 2. Кликните ПКМ в корне игрового объекта и выберите Add Component File. 3. Выберите файл тайловой карты. ![Use tile map](images/tilemap/use_tilemap.png) ## Манипулирование при выполнении Тайловыми картами можно управлять во время выполнения с помощью ряда различных функций и свойств (обращайтесь к [документации по API](/ref/tilemap/)). ### Смена тайлов из скрипта Содержимое тайловой карты можно считывать и записывать динамически во время работы игры. Для этого используются функции [`tilemap.get_tile()`](/ref/tilemap/#tilemap.get_tile) и [`tilemap.set_tile()`](/ref/tilemap/#tilemap.set_tile): ```lua local tile = tilemap.get_tile("/level#map", "ground", x, y) if tile == 2 then -- Заменить тайл с травой (2) на тайл с опасной ямой (number 4). tilemap.set_tile("/level#map", "ground", x, y, 4) end ``` ## Свойства тайловой карты Помимо свойств *Id*, *Position*, *Rotation* и *Scale* существуют следующие специфичные для компонента свойства: *Tile Source* : Тайловый источник, используемый для тайловой карты. *Material* : Материал, используемый для рендеринга тайловой карты. *Blend Mode* : Режим наложения, используемый при рендеринге тайловой карты. ### Режимы наложения :[blend-modes](../shared/blend-modes.md) ### Изменение свойств Тайловая карта имеет ряд различных свойств, которыми можно манипулировать с помощью `go.get()` и `go.set()`: `tile_source` : Источник тайлов для тайловой карты (`hash`). Это свойство можно изменять с помощью свойства источника тайлов и `go.set()`. За примером обращайтесь к [справочнику по API](/ref/tilemap/#tile_source). `material` : Материал тайловой карты (`hash`). Это свойство можно изменять с помощью свойства материала и `go.set()`. За примером обращайтесь к [справочнику по API](/ref/tilemap/#material). ### Константы материала {% include shared/material-constants.md component='tilemap' variable='tint' %} `tint` : Цветовой оттенок тайловой карты (`vector4`). Для представления оттенка с компонентами x, y, z и w, соответствующими красному, зеленому, синему и альфа оттенкам, используется тип vector4. ## Конфигурация проекта В файле *game.project* имеются несколько [настроек проекта](/manuals/project-settings#tilemap), относящихся к тайловым картам. ## Внешние инструменты Существуют внешние редакторы карт и уровней, которые могут экспортировать данные непосредственно в тайловые карты Defold: ### Tiled [Tiled](https://www.mapeditor.org/) — это известный и широко используемый редактор карт для ортогональных, изометрических и гексагональных карт. Он поддерживает множество функций и может [экспортировать напрямую в Defold](https://doc.mapeditor.org/en/stable/manual/export-defold/). Подробнее о том, как экспортировать данные тайлмапа и дополнительную мета-информацию, читайте в [блоге пользователя Defold "goeshard"](https://goeshard.org/2025/01/01/using-tiled-object-layers-with-defold-tilemaps/). ### Tilesetter [Tilesetter](https://www.tilesetter.org/docs/exporting#defold) позволяет автоматически создавать полноценные наборы тайлов из простых базовых плиток и содержит редактор карт, который может экспортировать данные непосредственно в Defold.