Tilemap

I livelli tilemap posizionano su una griglia i tile del proprio tileset. I tile sono numerati a partire da 1 (0 è il tile vuoto). (19 funzioni)

app.addTilemapLayer(name?, tileWidth, tileHeight, parentId?, tilesetLayerId?) — modifica, annullabile

Crea un nuovo livello tilemap con un tileset vuoto di tile tileWidth x tileHeight sopra tutti gli altri livelli (o sopra i livelli del gruppo parentId) e lo rende attivo. Usa app.addTilemapTile per aggiungervi dei tile. Con tilesetLayerId il livello condivide il tileset di quel livello: modificare, aggiungere o rimuovere tile ha effetto su entrambi.

  • name (string, facoltativo) — Nome del livello; predefinito 'Tilemap N'.
  • tileWidth (number)
  • tileHeight (number)
  • parentId (string, facoltativo) — Un gruppo a cui aggiungerlo (sopra i suoi livelli); omesso = il livello superiore.
  • tilesetLayerId (string, facoltativo) — Condivide il tileset di questo livello tilemap esistente invece di crearne uno nuovo (tileWidth e tileHeight vengono allora ignorati).

Restituisce (string): L'id del nuovo livello tilemap.

app.addTilemapTile(layerId, pixels?) — modifica, annullabile

Aggiunge in coda un tile al tileset di un livello tilemap e restituisce il suo indice di tile (a partire da 1; 0 è il tile vuoto implicito). Genera un errore se layerId non è un livello tilemap.

  • layerId (string)
  • pixels (table, facoltativo) — Buffer di pixel piatto (RGBA = 4 numeri per pixel, indicizzato = 1) della dimensione del tile; omettilo per un tile trasparente.

Restituisce (number): L'indice del nuovo tile, a partire da 1.

app.clearTilemapTile(layerId, tileIndex) — modifica, annullabile, rifiutata su un livello bloccato

Rende un tile completamente trasparente. Ogni suo posizionamento diventa vuoto.

  • layerId (string)
  • tileIndex (number) — Indice del tile, a partire da 1.

Non restituisce nulla.

app.convertToNormalLayer(layerId) — modifica, annullabile, rifiutata su un livello bloccato

Converte un livello tilemap in un livello immagine, rasterizzando i suoi posizionamenti di tile in un cel su ogni fotogramma (Livello > Converti in livello normale). Il livello mantiene il proprio id. Un unico passo di annullamento.

  • layerId (string) — Un livello tilemap.

Non restituisce nulla.

app.convertToTilemap(layerId, tileWidth, tileHeight, opts?) — modifica, annullabile, rifiutata su un livello bloccato

Converte un livello immagine in un livello tilemap con un nuovo tileset di tile tileWidth x tileHeight ritagliati dai suoi cel su ogni fotogramma (Livello > Converti in tilemap). Il livello mantiene il proprio id; i suoi cel diventano posizionamenti di tile. Un unico passo di annullamento.

  • layerId (string) — Un livello immagine (non lo sfondo).
  • tileWidth (number)
  • tileHeight (number)
  • opts (table, facoltativo)
    • dedupe (boolean; predefinito true) — Condivide i tile identici.
    • matchFlips (boolean; predefinito false) — Condivide anche i tile che coincidono se capovolti o ruotati di 90 gradi (e attiva le opzioni di corrispondenza del tileset).

Non restituisce nulla.

app.duplicateTilemapTile(layerId, tileIndex) — modifica, annullabile

Aggiunge una copia di un tile in fondo al tileset di un livello tilemap (il suo indice è il vecchio numero di tile + 1).

  • layerId (string)
  • tileIndex (number) — Indice, a partire da 1, del tile da copiare.

Restituisce (number): L'indice della copia, a partire da 1.

app.fillTiles(layerId, frameId, col, row, opts?) — modifica, annullabile, rifiutata su un livello bloccato

Secchiello di tile: riempie con un solo tile le celle che contengono lo stesso tile della cella (col, row) (una cella vuota è il tile 0), esattamente come il secchiello dell'interfaccia in modalità Posiziona tile. Il riempimento resta dentro la griglia di tile della tela.

  • layerId (string) — Un livello tilemap.
  • frameId (string)
  • col (number) — La colonna della griglia di tile su cui si è fatto clic (non un pixel dello sprite).
  • row (number) — La riga della griglia di tile su cui si è fatto clic.
  • opts (table, facoltativo) Accetta anche Opzioni di posizionamento (vedi "Gruppi di opzioni"), e inoltre:
    • contiguous (boolean; predefinito context.bucketFillMode (true per la modalità contigua del contesto, false per quella globale)) — Solo le celle connesse (true), oppure ogni cella che contiene il tile della cella cliccata (false).
    • tileIndex (integer ≥ 1; predefinito context.tileIndex) — Il tile, a partire da 1, con cui riempire.
    • flipH (boolean; predefinito context.tileFlipH) — Capovolge orizzontalmente i tile posizionati.
    • flipV (boolean; predefinito context.tileFlipV) — Capovolge verticalmente i tile posizionati.
    • rotate90 (boolean; predefinito context.tileRotate90) — Ruota i tile posizionati di 90° in senso orario (solo tile quadrati).

Non restituisce nulla.

app.getTilemap(layerId, frameId) — legge

I posizionamenti di tile di un livello tilemap in un fotogramma come { x, y (cella della griglia di tile), tileIndex, flipH, flipV, rotate90 }, la forma accettata da app.setTilemapInstances. I fotogrammi collegati riportano i posizionamenti condivisi.

  • layerId (string) — Un livello tilemap.
  • frameId (string)

Restituisce (table): Array di tabelle di posizionamento.

app.getTilePixels(layerId, tileIndex) — legge

L'immagine di un tile come lista RGBA piatta (tileWidthtileHeight4, per righe; i colori della palette sono risolti negli sprite indicizzati).

  • layerId (string) — Un livello tilemap.
  • tileIndex (number) — Tile, a partire da 1.

Restituisce (table): Lista RGBA piatta.

app.getTileset(layerId) — legge

Il tileset di un livello tilemap come { tileWidth, tileHeight, tileCount, matchFlipH, matchFlipV, matchRotate, baseIndex, name?, id? } (i flag di corrispondenza sono le opzioni di pittura automatica, vedi app.setTilesetMatch; baseIndex è il numero con cui viene mostrato il primo tile, vedi app.setTilesetProperties; id è presente quando più livelli condividono il tileset, e id uguali indicano lo stesso tileset). I tile sono numerati 1..tileCount (0 = il tile vuoto).

  • layerId (string) — Un livello tilemap.

Restituisce (table): Tabella del tileset.

app.importTilesFromImage(layerId, width, height, pixels, opts?) — modifica, annullabile, rifiutata su un livello bloccato

Suddivide un'immagine nel tileset del livello in celle tileWidth x tileHeight (le celle di bordo vengono completate con trasparenza), aggiungendo i tile che non ci sono già. Con frameId posiziona anche il risultato su quel fotogramma. Un unico passo di annullamento.

  • layerId (string) — Un livello tilemap.
  • width (number) — Larghezza dell'immagine in pixel.
  • height (number) — Altezza dell'immagine in pixel.
  • pixels (table) — Numeri RGBA piatti (4 per pixel, width*height pixel).
  • opts (table, facoltativo)
    • dedupe (boolean; predefinito true) — Riusa i tile identici invece di aggiungere duplicati.
    • matchFlips (boolean; predefinito false) — Con dedupe: riusa anche un tile che coincide se capovolto orizzontalmente/verticalmente o ruotato di 90 gradi (tile quadrati), posizionandolo con i flag corrispondenti.
    • skipEmpty (boolean; predefinito true) — Le celle senza pixel visibili non creano alcun tile.
    • frameId (string) — Posiziona anche le celle ricavate su questo fotogramma del livello, sostituendo le celle coperte dall'immagine.
    • col (integer; predefinito 0) — Colonna di tile del bordo sinistro dell'immagine al momento del posizionamento.
    • row (integer; predefinito 0) — Riga di tile del bordo superiore dell'immagine al momento del posizionamento.

Restituisce (number): Quanti tile sono stati aggiunti.

app.moveTilemapTile(layerId, from, to) — modifica, annullabile

Sposta un tile in una nuova posizione del tileset, rimappando ogni posizionamento in modo che visivamente non cambi nulla.

  • layerId (string)
  • from (number) — Indice attuale del tile, a partire da 1.
  • to (number) — Indice del tile dopo lo spostamento, a partire da 1.

Non restituisce nulla.

app.paintTilemapPixels(layerId, frameId, x, y, width, height, pixels, mode) — modifica, annullabile, rifiutata su un livello bloccato

Dipinge pixel in coordinate della tela su un livello tilemap, scrivendo attraverso il capovolgimento/la rotazione di ogni posizionamento di tile. Un unico passo di annullamento.

  • layerId (string)
  • frameId (string)
  • x (number) — Bordo sinistro, in coordinate della tela, della regione scritta.
  • y (number) — Bordo superiore, in coordinate della tela, della regione scritta.
  • width (number)
  • height (number)
  • pixels (table) — Numeri RGBA piatti (4 per pixel, width*height pixel); con alfa 0 cancella.
  • mode (TilePaintMode: "edit" | "auto") — "edit" cambia i tile già usati dalle celle (tutti i posizionamenti si aggiornano); "auto" lavora per ogni cella dipinta come Auto di Aseprite: riusa un tile identico (o uno capovolto/ruotato, secondo app.setTilesetMatch), altrimenti una copia alla scrittura / un nuovo tile, poi rimuove i tile che la modifica ha lasciato inutilizzati.

Non restituisce nulla.

app.removeTilemapTile(layerId, tileIndex) — modifica, annullabile, rifiutata su un livello bloccato

Elimina un tile dal tileset di un livello tilemap. I suoi posizionamenti vengono cancellati; quelli dei tile con numero più alto scalano di uno, così continuano a mostrare la stessa immagine (esattamente come Elimina del pannello Tileset).

  • layerId (string) — Un livello tilemap.
  • tileIndex (number) — Tile da eliminare, a partire da 1.

Non restituisce nulla.

app.setTilemapInstances(layerId, frameId, instances) — modifica, annullabile, rifiutata su un livello bloccato

Sostituisce i posizionamenti di tile di un livello tilemap per un fotogramma. x/y sono coordinate della griglia di tile. Genera un errore se layerId non è un livello tilemap.

  • layerId (string)
  • frameId (string)
  • instances (table) — Array di tabelle {x, y, tileIndex, flipH, flipV, rotate90} che sostituiscono i posizionamenti di questo fotogramma; vuoto li cancella.

Non restituisce nulla.

app.setTilemapTilePixels(layerId, tileIndex, pixels) — modifica, annullabile, rifiutata su un livello bloccato

Sostituisce i pixel di un tile di un livello tilemap. Ogni posizionamento di quel tile (tutti i fotogrammi, qualsiasi capovolgimento/rotazione) si aggiorna subito. Genera un errore se layerId, indice o lunghezza di pixels non sono validi.

  • layerId (string)
  • tileIndex (number)
  • pixels (table) — Buffer di pixel piatto (RGBA = 4 numeri per pixel, indicizzato = 1) della dimensione del tile.

Non restituisce nulla.

app.setTilesetMatch(layerId, flipH, flipV, rotate) — modifica, annullabile

Imposta le opzioni di corrispondenza dei capovolgimenti ("match flips") del tileset: nella pittura tilemap "auto", i nuovi pixel uguali a un tile esistente capovolto/ruotato riusano quel tile con i flag di posizionamento impostati, invece di creare un tile.

  • layerId (string) — Un livello tilemap.
  • flipH (boolean) — Cerca corrispondenze con tile capovolti orizzontalmente.
  • flipV (boolean) — Cerca corrispondenze con tile capovolti verticalmente.
  • rotate (boolean) — Cerca corrispondenze con tile ruotati di 90 gradi (solo tile quadrati).

Non restituisce nulla.

app.setTilesetProperties(layerId, name?, baseIndex?) — modifica, annullabile

Imposta il nome e il Base Index di un tileset. Il base index cambia solo come i tile vengono numerati nel pannello Tileset e in Aseprite; gli indici dei tile negli script restano a partire da 1. Si applica a ogni livello che condivide il tileset.

  • layerId (string) — Un livello tilemap.
  • name (string, facoltativo) — Il nome del tileset; "" lo cancella; nil lo lascia invariato.
  • baseIndex (number, facoltativo) — Il Base Index di Aseprite: il numero con cui viene mostrato il primo tile (predefinito 1), da -32768 a 32767; nil lo lascia invariato.

Non restituisce nulla.

app.stampTiles(layerId, frameId, cells, opts?) — modifica, annullabile, rifiutata su un livello bloccato

Timbra un tile nelle (o, con erase, cancella le) celle della griglia di tile indicate di un livello tilemap, esattamente come il timbro di tile dell'interfaccia. Le celle non toccate mantengono i loro posizionamenti. Con symmetry, le celle speculari ricevono il tile speculare (i capovolgimenti si specchiano con esso); con respectSelection, le celle fuori dalla selezione vengono saltate.

  • layerId (string) — Un livello tilemap.
  • frameId (string)
  • cells (table) — Lista di celle della GRIGLIA DI TILE { x = col, y = row } (o { col, row }), non pixel dello sprite.
  • opts (table, facoltativo) Accetta anche Opzioni di posizionamento (vedi "Gruppi di opzioni"), e inoltre:
    • tileIndex (integer ≥ 0; predefinito context.tileIndex) — Il tile da posizionare, a partire da 1.
    • flipH (boolean; predefinito context.tileFlipH) — Capovolge orizzontalmente i tile posizionati.
    • flipV (boolean; predefinito context.tileFlipV) — Capovolge verticalmente i tile posizionati.
    • rotate90 (boolean; predefinito context.tileRotate90) — Ruota i tile posizionati di 90° in senso orario (solo tile quadrati).
    • erase (boolean; predefinito false) — Rimuove i posizionamenti delle celle invece di posizionare un tile.

Non restituisce nulla.

In Markdown: tilemaps.md.