Read this manual in English

Tile map

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.

Tworzenie mapy kafelków

To create a new tile map:

  • Kliknij prawym przyciskiem myszki na wybraną lokację w panel Assets i wybierz New... ▸ Tile Map).
  • Nazwij plik.
  • Nowa mapa automatycznie utworzy się w Edytorze map.

    new tilemap

  • Ustaw źródła - właściwość Tile Source tak, żeby wskazywała na wcześniej przygotowane źródło kafelków.

W edytorze możesz rysować kafelkami swoje mapy, niczym pędzlem w edytorach graficznych:

  1. Wybierz lub utwórz nową warstwę (Layer) w panelu Outline.
  2. Wybierz kafelek do używania z palety otwieranej po naciśnięciu Spacji.

    Palette

  3. Maluj wybranym kafelkiem niczym pędzlem. Żeby wymazać kafelek albo wybierz pusty kafelek, żeby użyć go jak gumki, albo wybierz narzędzie gumki: Edit ▸ Select Eraser.

    Painting tiles

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.

Picking tiles

Dodawanie mapy kafelków do Twojej gry

Aby dodać mapę do Twojej gry:

  1. Utwórz obiekt gry. Nie jest istotne czy będzie to obiekt gry z prototypem zapisanym w pliku czy utworzonym bezpośrednio w kolekcji.
  2. Kliknij prawym przyciskiem myszki na Twój obiekt i wybierz Add Component File.
  3. Wybierz plik z Twoją mapą kafelków.

Use tile map

Manipulacja w trakcie działania programu

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

Zmienianie pojedynczych kafelków z poziomu skryptu

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

Właściwości map kafelków

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.

Blend modes - tryby blendowania

Właściwość Blend Mode określa w jaki sposób graficzne komponenty mają być ze sobą mieszane, czyli wyświetlane w momencie nakładania się dwóch obrazów na siebie. Oto dostępne tryby blendowania i wyjaśnienie w jaki sposób są obliczane kolory:

Alpha
Normalne blendowanie: src.a * src.rgb + (1 - src.a) * dst.rgb
Add
Rozświetl grafikę w tle wartościami kolorów z grafiki na przednim planie: src.rgb + dst.rgb
Multiply
Zaciemnij grafikę w tle wartościami kolorów z grafiki na przednim planie: src.rgb * dst.rgb

Zmiana właściwości w trakcie działania programu

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.

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

Konfiguracja projektu

Plik game.project zawiera te ustawienia dotyczące map kafelków.