title: Mapy kafelków w Defoldzie
Mapa kafelków, czyli Tile Map jest komponentem pozwalającym składać większe obrazy z mniejszych kafelków (tiles) z dostępnego źródła kafelków (Tile Source) na kanwie o stałej siatce rozmieszczenia kafelków. Mapy te są często używane do budowania poziomów w grach (np. platformowych). Możesz również używać kształtu kolizji (Collision Shapes) pojedynczych kafelków ze źródła w Twojej mapie do wykrywania kolizji między poziomem a innymi obiektami fizyki (- sprawdź przykład).
Zanim utworzysz mapę kafelków musisz utworzyć ich źródło - galerię kafelków (Tile Source). Więcej szczegółów na temat tworzenia źródła kafelków znajdziesz w tej instrukcji.
To create a new tile map:
W edytorze możesz rysować kafelkami swoje mapy, niczym pędzlem w edytorach graficznych:
Możesz też pobierać kafelki bezpośrednio z warstwy na Twojej mapie i używać wybranego kafelka jak pędzla - naciśnij Shift i wybierz kafelek z mapy, żeby użyć go jako pędzla. Podczas trzymania klawisza Shift możesz wybrać więcej niż jeden kafelek - przeciągając zaznaczenie przez wiele z nich, żeby stworzyć większy pędzel składający się z kilku kafelków.
Aby dodać mapę do Twojej gry:
Możesz też manipulować mapami w trakcie działania programu poprzez kilka funkcji i właściwości (sprawdź więcej szczegółów w API).
Możesz zarówno odczytać kafelek z danego miejsca na mapie i zapisać inny kafelek w danym miejscu mapy dynamicznie. Używa się do tego funkcji tilemap.get_tile()
i tilemap.set_tile()
functions:
local tile = tilemap.get_tile("/level#map", "ground", x, y)
if tile == 2 then
-- Zamień kafelek trawy (2) z kafelkiem z niebezpieczną dziurą (4).
tilemap.set_tile("/level#map", "ground", x, y, 4)
end
Poza właściwościami takimi jak Id, Position i Rotation komponenty te posiadają swoje specyficzne właściwości:
Tile Source : Źródło kafelków - galeria z mniejszymi obrazkami/kafelkami.
Material : Materiał służący do renderowania.
Blend Mode : Tryb "mieszania"/blendowania używany również przy renderowaniu. Więcej szczegółów poniżej.
Mapa kafelków ma kilka różnych właściwości, które można odczytywać i zmieniać w trakcie działania programu używając funkcji go.get()
i go.set()
:
tile_source
: Źródło kafelków (hash
). Możesz użyć tej właściwości do podmiany źródła kafelków na inne, które mogą być właściwościami zasobu (resource property) i ustawić używając go.set()
. Sprawdź szczegóły i przykłady w API.
material
: Materiał mapy (hash
). Możesz podmienić materiał korzystając z właściwości zasobu (resource property) i ustawić używając go.set()
. Sprawdź szczegóły i przykłady w API.
{% include shared/material-constants.md component='tilemap' variable='tint' %}
tint
: Kolor zabarwienia/odcienia mapy (vector4
). Wektor czterech komponentów reprezentuje zabarwienie, gdzie komponenty x, y, z, w odpowiadają składowym: czerwony, zielony, niebieski i przezroczystość (red, green, blue, alpha).
Plik game.project zawiera te ustawienia dotyczące map kafelków.