Manuals
Manuals




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

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.

Tworzenie mapy kafelków

Aby utworzyć nową mapę kafelków:

  • Right click w wybranym miejscu w przeglądarce Assets, a następnie wybierz New... ▸ Tile Map.
  • Nadaj plikowi nazwę.
  • Nowa mapa kafelków automatycznie otworzy się w edytorze map kafelków.

    new tilemap

  • Ustaw właściwość Tile Source na plik źródła kafelków, który przygotowałeś.

Aby malować kafelki na mapie:

  1. Wybierz lub utwórz Layer do malowania w widoku Outline.
  2. 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.

    Palette

  3. 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).

    Painting tiles

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.

Picking tiles

Dodawanie mapy kafelków do gry

Aby dodać mapę kafelków do gry:

  1. Utwórz obiekt gry, który będzie zawierał komponent mapy kafelków. Obiekt gry może być zapisany w pliku albo utworzony bezpośrednio w kolekcji.
  2. Kliknij prawym przyciskiem myszy główny element obiektu gry i wybierz Add Component File.
  3. Wybierz plik mapy kafelków.

Use tile map

Modyfikowanie w czasie działania

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).

Zmiana kafelków ze skryptu

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

Właściwości mapy kafelków

Oprócz właściwości Id, Position, Rotation i Scale istnieją też następujące właściwości specyficzne dla tego komponentu:

Tile Source
Zasób Tile Source używany przez mapę kafelków.
Material
Materiał używany do renderowania mapy kafelków.
Blend Mode
Tryb mieszania używany podczas renderowania mapy kafelków.

Tryby mieszania

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:

Alpha
Normalne blendowanie: src.a * src.rgb + (1 - src.a) * dst.rgb
Add
Rozjaśnia tło wartościami kolorów odpowiednich pikseli komponentu: src.rgb + dst.rgb
Multiply
Przyciemnia tło wartościami kolorów odpowiednich pikseli komponentu: src.rgb * dst.rgb
Screen
Odwrotność Multiply. Rozjaśnia tło i wartości kolorów odpowiednich pikseli komponentu: src.rgb - dst.rgb * dst.rgb

Zmiana właściwości

Mapa kafelków ma kilka właściwości, którymi można sterować za pomocą go.get() i go.set():

tile_source
Źródło kafelków mapy kafelków (hash). 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.
material
Materiał mapy kafelków (hash). Możesz zmienić tę wartość za pomocą właściwości zasobu materiału i go.set(). Zobacz przykład w dokumentacji API.

Stałe materiału

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)
tint
Kolor zabarwienia mapy kafelków (vector4). Wartość vector4 reprezentuje zabarwienie za pomocą składowych x, y, z i w, odpowiadających kolejno czerwieni, zieleni, niebieskiemu i alfie.

Konfiguracja projektu

Plik game.project zawiera kilka ustawień projektu związanych z mapami kafelków.

Narzędzia zewnętrzne

Istnieją zewnętrzne edytory map i poziomów, które mogą eksportować dane bezpośrednio do map kafelków Defold:

Tiled

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

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.