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
Komponent Sprite to prosty obraz albo animacja poklatkowa (flipbook) wyświetlana na ekranie.
![]()
Komponent Sprite może jako źródło grafiki używać Atlas albo Tile Source.
Poza właściwościami Id, Position i Rotation komponent ma następujące właściwości specyficzne dla Sprite:
Image. W przeciwnym razie każde pole nosi nazwę zgodną z samplerem tekstury w materiale. Każde pole wskazuje zasób Atlas albo Tile Source używany przez sprite na danym samplerze tekstury.Automatic, edytor sam ustawi rozmiar sprite’a. Jeśli ustawisz Manual, możesz ustawić rozmiar ręcznie.Węzły box GUI i komponenty Sprite czasami zawierają elementy zależne od kontekstu ich rozmiaru: panele i okna dialogowe, które trzeba przeskalować, aby dopasować je do zawartości, albo pasek życia, który trzeba przeskalować, aby pokazać pozostałą wartość zdrowia przeciwnika. Takie elementy mogą powodować problemy wizualne, gdy zastosujesz teksturowanie do przeskalowanego węzła lub komponentu Sprite.
Zwykle silnik skaluje teksturę tak, aby pasowała do prostokątnych granic, ale zdefiniowanie obszarów krawędzi Slice-9 pozwala ograniczyć, które części tekstury mają być skalowane:

Węzeł box Slice9 składa się z 4 liczb określających liczbę pikseli dla lewego, górnego, prawego i dolnego marginesu, które nie powinny być zwykle skalowane:

Marginesy ustawia się zgodnie z ruchem wskazówek zegara, zaczynając od lewej krawędzi:

Opisane powyżej skalowanie tekstury Slice9 jest stosowane tylko wtedy, gdy zmieniasz rozmiar węzła box albo komponentu Sprite:

![]()
Jeśli zmienisz parametr scale węzła box lub komponentu Sprite albo obiektu gry, sam węzeł lub komponent Sprite i tekstura zostaną przeskalowane bez zastosowania parametrów Slice9.
Podczas używania teksturowania Slice-9 w Sprite’ach właściwość Sprite Trim Mode obrazu musi być ustawiona na Off.
Ze względu na sposób działania mipmapowania w rendererze skalowanie fragmentów tekstury może czasem powodować artefakty. Dzieje się tak, gdy zmniejszasz fragmenty poniżej oryginalnego rozmiaru tekstury. Renderer wybiera wtedy dla segmentu mipmapę o niższej rozdzielczości, co skutkuje artefaktami wizualnymi.

Aby uniknąć tego problemu, upewnij się, że segmenty tekstury, które będą skalowane, są na tyle małe, by nigdy nie były zmniejszane, a jedynie powiększane.
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.rgbSprite’y można modyfikować w czasie działania za pomocą różnych funkcji i właściwości. Sposób użycia znajdziesz w dokumentacji API. Funkcje:
sprite.play_flipbook() - Odtwarza animację na komponencie Sprite.sprite.set_hflip() i sprite.set_vflip() - Ustawiają poziome i pionowe odbicie animacji sprite’a.Sprite ma też kilka właściwości, którymi można manipulować przy użyciu go.get() i go.set():
cursornumber).imagehash). Możesz go zmienić za pomocą właściwości zasobu wskazującej Atlas albo Tile Source i funkcji go.set(). Przykład znajdziesz w referencji API.materialhash). Możesz go zmienić za pomocą właściwości zasobu materiału i funkcji go.set(). Przykład znajdziesz w referencji API.playback_ratenumber).scalevector3).sizevector3). Można go zmienić tylko wtedy, gdy tryb rozmiaru sprite’a jest ustawiony na ręczny.Domyślny materiał komponentu typu sprite 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("#sprite", "tint", vmath.vector4(1,0,0,1))
go.animate("#sprite", "tint", go.PLAYBACK_LOOP_PINGPONG, vmath.vector4(1,0,0,1), go.EASING_LINEAR, 2)
tintvector4). vector4 reprezentuje zabarwienie, a składowe x, y, z i w odpowiadają kolejno czerwieni, zieleni, niebieskiemu i alfie.Sprite może nadpisywać atrybuty wierzchołków z aktualnie przypisanego materiału. Zostaną one przekazane z komponentu do vertex shadera. Więcej informacji znajdziesz w instrukcji do materiałów.
Atrybuty określone w materiale pojawią się w inspectorze jako zwykłe właściwości i można je ustawiać osobno dla każdego komponentu Sprite. Jeśli którykolwiek atrybut zostanie nadpisany, będzie widoczny jako nadpisana właściwość i zostanie zapisany w pliku sprite’a na dysku:
![]()
Plik game.project zawiera kilka ustawień projektu związanych ze sprite’ami.
Gdy sprite korzysta z wielu tekstur, warto pamiętać o kilku rzeczach.
Dane animacji, takie jak fps i nazwy klatek, są obecnie pobierane z pierwszej tekstury. Nazwijmy ją „animacją sterującą”.
Id obrazów z animacji sterującej są używane do wyszukiwania obrazów w kolejnej teksturze. Dlatego ważne jest, aby id klatek były zgodne pomiędzy teksturami.
Na przykład, jeśli diffuse.atlas ma animację run w takiej postaci:
run:
/main/images/hero_run_color_1.png
/main/images/hero_run_color_2.png
...
to id klatek będą wyglądały tak: run/hero_run_color_1. Taki identyfikator prawdopodobnie nie zostanie znaleziony na przykład w normal.atlas:
run:
/main/images/hero_run_normal_1.png
/main/images/hero_run_normal_2.png
...
Dlatego używamy Rename patterns w atlasie, aby zmienić te nazwy.
Ustaw _color= i _normal= w odpowiednich atlasach, a w obu otrzymasz nazwy klatek w takiej postaci:
run/hero_run_1
run/hero_run_2
...
Współrzędne UV są pobierane z pierwszej tekstury. Ponieważ istnieje tylko jeden zestaw wierzchołków, nie da się zagwarantować dobrego dopasowania, jeśli dodatkowe tekstury mają więcej współrzędnych UV albo inny kształt.
Warto o tym pamiętać i zadbać, aby obrazy miały wystarczająco podobne kształty, bo w przeciwnym razie może pojawić się przeciekanie tekstur.
Wymiary obrazów w poszczególnych teksturach mogą się różnić.