This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Mapa kafelków, czyli Tile Map, to komponent pozwalający układać albo malować kafelki z Tile Source na dużym obszarze siatki. Mapy kafelków są często używane do budowy poziomów w grach. Możesz też korzystać z Collision Shapes ze źródła kafelków w swoich mapach do wykrywania kolizji i symulacji fizyki (przykład).
Zanim utworzysz mapę kafelków, musisz najpierw utworzyć Tile Source. Zajrzyj do podręcznika Tile Source, aby dowiedzieć się, jak utworzyć takie źródło.
Aby utworzyć nową mapę kafelków:
Nowa mapa kafelków automatycznie otworzy się w edytorze map kafelków.

Aby malować kafelki na mapie:
Wybierz kafelek, który ma służyć jako pędzel (naciśnij Space, aby wyświetlić paletę kafelków), albo zaznacz kilka kafelków, przeciągając po palecie, aby utworzyć prostokątny pędzel z wieloma kafelkami.

Maluj wybranym pędzlem. Aby usunąć kafelek, możesz wybrać pusty kafelek i użyć go jako pędzla albo wybrać gumkę (Edit ▸ Select Eraser).

Możesz też pobierać kafelki bezpośrednio z warstwy i używać zaznaczenia jako pędzla. Przytrzymaj Shift i kliknij kafelek, aby przejąć go jako aktualny pędzel. Trzymając Shift, możesz też kliknąć i przeciągnąć, aby zaznaczyć blok kafelków i użyć go jako większego pędzla. Możesz również wycinać kafelki w podobny sposób, przytrzymując Shift+Ctrl, albo usuwać je, przytrzymując Shift+Alt.
Aby obrócić pędzel zgodnie z ruchem wskazówek zegara, użyj Z. X służy do poziomego odbicia pędzla, a Y do odbicia pionowego.

Aby dodać mapę kafelków do gry:

Możesz modyfikować mapy kafelków w czasie działania programu za pomocą kilku różnych funkcji i właściwości (zobacz dokumentację API po przykłady użycia).
Możesz dynamicznie odczytywać i zapisywać zawartość mapy kafelków, gdy gra działa. W tym celu użyj funkcji tilemap.get_tile() i tilemap.set_tile():
local tile = tilemap.get_tile("/level#map", "ground", x, y)
if tile == 2 then
-- Zamień kafelek trawy (2) na niebezpieczną dziurę (liczba 4).
tilemap.set_tile("/level#map", "ground", x, y, 4)
end
Oprócz właściwości Id, Position, Rotation i Scale istnieją też następujące właściwości specyficzne dla tego komponentu:
Właściwość Blend Mode określa, w jaki sposób grafika komponentu ma być mieszana z grafiką znajdującą się za nią. Poniżej przedstawiono dostępne tryby mieszania i sposób ich obliczania:
src.a * src.rgb + (1 - src.a) * dst.rgbsrc.rgb + dst.rgbsrc.rgb * dst.rgbsrc.rgb - dst.rgb * dst.rgbMapa kafelków ma kilka właściwości, którymi można sterować za pomocą go.get() i go.set():
tile_sourcehash). Możesz zmienić tę wartość za pomocą właściwości zasobu źródła kafelków i go.set(). Zobacz przykład w dokumentacji API.materialhash). Możesz zmienić tę wartość za pomocą właściwości zasobu materiału i go.set(). Zobacz przykład w dokumentacji API.Domyślny materiał komponentu typu tilemap posiada stałe, które można zmienić za pomocą funckji go.set() lub go.animate() (więcej szczegółów znajdziesz w instrukcji do materiałów). Przykłady:
go.set("#tilemap", "tint", vmath.vector4(1,0,0,1))
go.animate("#tilemap", "tint", go.PLAYBACK_LOOP_PINGPONG, vmath.vector4(1,0,0,1), go.EASING_LINEAR, 2)
tintvector4). Wartość vector4 reprezentuje zabarwienie za pomocą składowych x, y, z i w, odpowiadających kolejno czerwieni, zieleni, niebieskiemu i alfie.Plik game.project zawiera kilka ustawień projektu związanych z mapami kafelków.
Istnieją zewnętrzne edytory map i poziomów, które mogą eksportować dane bezpośrednio do map kafelków Defold:
Tiled to dobrze znany i szeroko używany edytor map dla map ortogonalnych, izometrycznych i heksagonalnych. Tiled obsługuje wiele różnych funkcji i może eksportować bezpośrednio do Defold. Więcej informacji o eksportowaniu danych map kafelków i dodatkowych metadanych znajdziesz w tym wpisie na blogu użytkownika Defold o nazwie “goeshard”.
Tilesetter może automatycznie tworzyć kompletne zestawy kafelków z prostych kafelków bazowych i ma edytor map, który może eksportować bezpośrednio do Defold.