# Tilemaps

Crie níveis e arte repetitiva com tiles: camadas de tilemap, tilesets, os três modos de tile, tilesets compartilhados e exportação para o Tiled e engines de jogo.

_Os atalhos estão escritos para Windows e Linux. No Mac, use ⌘ Cmd onde está Ctrl e ⌥ Option no lugar de Alt._

Uma **camada de tilemap** é pintada com **tiles**: pequenas imagens, todas do mesmo tamanho, guardadas no
**tileset** da camada. A camada em si só registra qual tile está em cada célula da sua grade (e
se ele está espelhado ou girado). Repinte um tile e toda célula que o usa muda, e é isso
que torna os tiles bons para paredes, pisos e terreno.

## Criar uma camada de tilemap

- **Nova:** Camada > Nova camada de tilemap... pede um nome e a **largura e altura do tile** (16×16, a menos
  que você mude). Ela começa com um tileset vazio. Se o sprite já tem um tileset, você pode
  escolher **Usar existente** para compartilhá-lo (abaixo).
- **A partir de uma camada de imagem:** Camada > Tilemap > Converter em tilemap... corta a arte da camada, em todos os quadros,
  em tiles e a substitui por posições de tiles. **Compartilhar tiles idênticos** faz quadrados repetidos
  virarem um só tile; **Compartilhar também tiles espelhados e girados** pega também as cópias espelhadas. A grade
  começa no canto superior esquerdo da tela, e a arte além das bordas da tela também é mantida como tiles.
  Cada cel mantém sua opacidade, z-index e dados do usuário, que você pode mudar em **Propriedades do cel**
  (clique com o botão direito no cel), como em qualquer camada.
- **De volta para pixels:** Camada > Tilemap > Converter em camada normal transforma os tiles em pixels comuns em todos os
  quadros, inclusive os tiles fora da tela.

## Os três modos

Com uma camada de tilemap ativa, a barra de opções da ferramenta mostra **Tiles**, **Pixels: auto** e **Pixels:
editar**, e uma caixa **Grade de tiles** que desenha os limites dos tiles. Pressione `Alt+T`
para alternar entre Tiles e o modo de pixels que você usou por último. (O Aseprite usa Tab para isso; aqui o Tab
só move entre os controles.)

| Modo | O que pintar faz |
| - | - |
| **Tiles** | Coloque tiles inteiros com o Carimbo de tiles. As ferramentas de pixel não pintam neste modo. |
| **Pixels: auto** | Pinte pixels como em qualquer camada; só as células que você toca mudam. Uma célula que termina idêntica a um tile existente o reaproveita; uma imagem nova vira um novo tile; um tile usado em outro lugar é copiado para esta célula, para que as outras células mantenham o seu. Uma célula que você apaga por completo volta a ficar vazia. Os tiles que sua edição deixa sem uso são removidos. |
| **Pixels: editar** | Pinte direto nos próprios tiles: toda célula, em todos os quadros, que usa um tile muda junto com ele. Células vazias continuam vazias. |

Escolher Tiles muda para o Carimbo de tiles, e escolher uma ferramenta de desenho volta a um modo de pixels, de modo que a ferramenta e o modo sempre combinam.

## O painel Tileset

O painel **Tileset** mostra os tiles da camada de tilemap ativa, com quantas células usam cada um. Clique em um
tile para selecioná-lo: o tile selecionado é o que o Carimbo de tiles coloca. O **Tile 0** é o tile vazio
e está sempre lá.

- Os botões adicionam um tile vazio, **duplicam** o tile selecionado (a cópia vai para o fim),
  **limpam** o tile deixando-o transparente, ou o **excluem** (se células o usam, você é consultado antes, e essas
  células são esvaziadas). Toda alteração pode ser desfeita.
- Arraste um tile, ou pressione `Alt` com uma seta, para **reordenar** o tileset. As células continuam mostrando
  as mesmas imagens.
- A **Correspondência auto** (Espelhar H, Espelhar V, Girar) permite que Pixels: auto reaproveite um tile quando a nova imagem
  corresponde a ele espelhado ou girado.
- O **Carimbo** (Espelhar H, Espelhar V, Girar 90°) espelha ou gira o tile que o Carimbo de tiles coloca. Só
  tiles quadrados podem ser girados.
- Camada > Tilemap > Propriedades do tileset... dá nome ao tileset e define seu **Índice base**: o número mostrado
  para o primeiro tile (1, como no Aseprite; de -32768 a 32767). Ele só muda a numeração.
  A seção **Dados do usuário** guarda uma cor, uma nota e propriedades personalizadas do tileset
  ([Dados do usuário e propriedades personalizadas](https://pxstud.io/pt-br/docs/manual/guides/document.md#user-data-and-custom-properties)).

## Carimbar tiles

Com o Carimbo de tiles, clique ou arraste pela camada para colocar o tile selecionado em cada célula
por onde passar. Segure `Alt` ao começar para remover tiles em vez disso. Um arrasto inteiro é um passo de desfazer.
A camada precisa estar visível e desbloqueada.

## Colocar tiles com outras ferramentas

Com uma camada de tilemap ativa, o lápis, a borracha, a linha, o retângulo, a elipse, o triângulo, o hexágono, a estrela
e o balde têm uma caixa **Colocar tiles**. Com ela ativada, colocam o tile selecionado (e suas configurações de Espelhar
e Girar, como definidas para o Carimbo de tiles) nas células do tilemap em vez de pintar pixels,
seja qual for o modo Tiles / Pixels:

- Uma célula é coberta quando qualquer pixel que a ferramenta pintaria fica dentro dela: um ponto de lápis de um pixel
  coloca um tile, um retângulo só com contorno as células que o contorno cruza, um preenchido toda célula que
  ele preenche. O tamanho do pincel conta. A borracha esvazia as células que toca.
- O **balde** preenche as células conectadas (para cima e para baixo, esquerda e direita) que têm o mesmo tile que
  aquela em que você clica, com o tile selecionado. Uma célula vazia conta como tile 0. **Global** preenche toda
  célula que tem esse tile. Ele fica dentro da grade de células da tela, então em uma camada vazia
  preenche a grade visível e nada além.
- A **Simetria** espelha a colocação. Uma célula vai para a célula que contém o espelho do seu centro, e
  o tile é espelhado para combinar: um eixo vertical alterna Espelhar H, um eixo horizontal Espelhar V, e um
  eixo diagonal gira o tile (Girar 90° mais um espelhamento, só tiles quadrados). Uma célula sobre um eixo mantém
  o tile como você o colocou. O balde preenche de novo a partir de cada clique espelhado.
- Uma **seleção** limita a colocação às células com pelo menos um pixel selecionado (o balde também
  para nas outras).
- Cada traço ou preenchimento é um passo de desfazer, e um que não muda nada não deixa nenhum.

O Carimbo de tiles também segue a simetria e a seleção.

## Compartilhar um tileset

Várias camadas de tilemap podem usar **o mesmo tileset**: escolha **Usar existente** em
Camada > Nova camada de tilemap.... Editar, adicionar, remover ou reordenar tiles então chega a toda camada
que o compartilha, o que ajuda a manter uma camada de fundo e uma de primeiro plano em sincronia. O
cabeçalho do painel mostra quantas camadas compartilham o tileset. Bloquear uma delas a protege: um tile
que ela mostra não pode ser repintado, limpo ou excluído (nem editado com Pixels: editar) por outra
camada até você desbloqueá-la.

## Importar tiles

Camada > Tilemap > Importar tiles de imagem... corta uma imagem em tiles do tamanho do tileset e os adiciona. A
imagem pode ser um **arquivo de imagem**, o **quadro ativo** ou a **seleção** nele. Ele pode **ignorar
tiles duplicados** (inclusive os espelhados e girados), **ignorar tiles vazios** e também **colocar os tiles**
no quadro ativo.

## Tilemaps animados

Cada quadro tem suas próprias posições de tiles, então um tilemap pode ser animado. Os quadros também podem ser **vinculados** em
uma camada de tilemap (Quadro > Novo quadro vinculado, Editar > Cel > Vincular cels): quadros vinculados compartilham suas
posições. Lembre-se de que Pixels: editar muda os próprios tiles, então aparece em todo quadro
que os usa, vinculado ou não.

## Exportar

Arquivo > Exportar... com o tipo **Tilemap (JSON / Tiled)** grava uma imagem PNG de cada tileset
mais um destes:

- **Tiled** (mapa `.tmj` com tilesets `.tsj`), para o editor Tiled e engines que leem seu
  formato. Mapas do Tiled não têm quadros, então apenas o quadro selecionado é exportado.
- **JSON (todos os quadros)**, um arquivo simples com os números de tile e as durações de cada quadro.

Nos dois, uma célula 0 é vazia, e espelhamentos e rotação são guardados nos bits superiores do número,
como o Tiled faz. Os tilemaps também são mantidos em arquivos do **Aseprite**, inclusive os tilesets compartilhados.
