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
Chociaż pojedyncze obrazy są często używane jako źródło sprite’ów, ze względów wydajnościowych obrazy trzeba łączyć w większe zestawy, zwane atlasami. Łączenie mniejszych obrazów w atlasy jest szczególnie ważne na urządzeniach mobilnych, gdzie pamięć i moc obliczeniowa są mniejsze niż na komputerach stacjonarnych lub konsolach do gier.
W Defold zasób atlasu to lista oddzielnych plików obrazów, które są automatycznie łączone w jeden większy obraz.
Wybierz New... ▸ Atlas z menu kontekstowego w przeglądarce Assets. Nadaj nazwę nowemu plikowi atlasu. Edytor otworzy teraz plik w edytorze atlasu. Właściwości atlasu są widoczne w panelu Properties, więc możesz je edytować (szczegóły znajdziesz poniżej).
Musisz najpierw wypełnić atlas obrazami lub animacjami, zanim użyjesz go jako źródła grafiki dla komponentów obiektu, takich jak Sprite i ParticleFX.
Upewnij się, że dodałeś obrazy do projektu, przeciągając pliki obrazów w odpowiednie miejsce w przeglądarce Assets.
Alternatywnie kliknij prawym przyciskiem myszy główny wpis atlasu w panelu Outline.
Wybierz Add Images z menu kontekstowego, aby dodać pojedyncze obrazy.
Otworzy się okno dialogowe, w którym możesz znaleźć i zaznaczyć obrazy, które chcesz dodać do atlasu. Zwróć uwagę, że możesz filtrować pliki obrazów i wybierać wiele plików naraz.

Dodane obrazy są wyświetlane w Outline, a cały atlas można zobaczyć w środkowym widoku edytora. Może być konieczne naciśnięcie F (View ▸ Frame Selection z menu), aby dopasować widok do zaznaczenia.

Wybierz Add Animation Group z menu kontekstowego, aby utworzyć grupę animacji flipbook.
Do atlasu zostanie dodana nowa, pusta grupa animacji z domyślną nazwą (“New Animation”).
Przeciągnij obrazy z panelu Assets do widoku edytora, aby dodać je do aktualnie zaznaczonej grupy.
Alternatywnie kliknij prawym przyciskiem myszy nową grupę i wybierz Add Images z menu kontekstowego.
Otworzy się okno dialogowe, w którym możesz znaleźć i zaznaczyć obrazy, które chcesz dodać do grupy animacji.

Naciśnij Space z zaznaczoną grupą animacji, aby ją podejrzeć, i użyj Ctrl/Cmd+T, aby zamknąć podgląd. Dostosuj Properties animacji według potrzeb (patrz poniżej).

Możesz zmieniać kolejność obrazów w panelu Outline, zaznaczając je i naciskając Alt + Up/down. Możesz też łatwo tworzyć duplikaty, kopiując i wklejając obrazy w panelu Outline (z menu Edit, z menu kontekstowego po kliknięciu prawym przyciskiem myszy lub skrótami klawiaturowymi).
Każdy zasób atlasu ma zestaw właściwości. Są one widoczne w panelu Properties, gdy zaznaczysz element główny w widoku Outline.
/builtins/materials/*_paged_atlas.material.
search=replace.
Oryginalna nazwa każdego obrazu (nazwa bazowa pliku) zostanie przekształcona przy użyciu tych wzorców. Na przykład wzorzec hat=cat,_normal= zmieni nazwę obrazu hat_normal na cat. Jest to przydatne przy dopasowywaniu animacji między atlasami.Oto przykłady różnych ustawień właściwości z czterema kwadratowymi obrazami 64x64 dodanymi do atlasu. Zwróć uwagę, jak atlas przeskakuje do 256x256, gdy obrazy przestają mieścić się w 128x128, co powoduje duże marnotrawstwo miejsca w teksturze.

Każdy obraz w atlasie ma zestaw właściwości:

Oprócz listy obrazów należących do grupy animacji dostępny jest zestaw właściwości:
None nie odtwarza niczego, wyświetlany jest pierwszy obraz.Once Forward odtwarza animację raz od pierwszego do ostatniego obrazu.Once Backward odtwarza animację raz od ostatniego do pierwszego obrazu.Once Ping Pong odtwarza animację raz od pierwszego do ostatniego obrazu, a następnie z powrotem do pierwszego obrazu.Loop Forward odtwarza animację wielokrotnie od pierwszego do ostatniego obrazu.Loop Backward odtwarza animację wielokrotnie od ostatniego do pierwszego obrazu.Loop Ping Pong odtwarza animację wielokrotnie od pierwszego do ostatniego obrazu, a następnie z powrotem do pierwszego obrazu.Począwszy od Defold 1.4.2 można tworzyć teksturę i atlas w czasie działania programu.
Użyj resource.create_texture(path, params), aby utworzyć nowy zasób tekstury:
local params = {
width = 128,
height = 128,
type = resource.TEXTURE_TYPE_2D,
format = resource.TEXTURE_FORMAT_RGBA,
}
local my_texture_id = resource.create_texture("/my_custom_texture.texturec", params)
Gdy tekstura zostanie utworzona, użyj resource.set_texture(path, params, buffer), aby ustawić piksele tekstury:
local width = 128
local height = 128
local buf = buffer.create(width * height, { { name=hash("rgba"), type=buffer.VALUE_TYPE_UINT8, count=4 } } )
local stream = buffer.get_stream(buf, hash("rgba"))
for y=1, height do
for x=1, width do
local index = (y-1) * width * 4 + (x-1) * 4 + 1
stream[index + 0] = 0xff
stream[index + 1] = 0x80
stream[index + 2] = 0x10
stream[index + 3] = 0xFF
end
end
local params = { width=width, height=height, x=0, y=0, type=resource.TEXTURE_TYPE_2D, format=resource.TEXTURE_FORMAT_RGBA, num_mip_maps=1 }
resource.set_texture(my_texture_id, params, buf)
Możliwe jest również użycie resource.set_texture(), aby zaktualizować podregion tekstury, korzystając z bufora o szerokości i wysokości mniejszych niż pełny rozmiar tekstury oraz zmieniając parametry x i y przekazywane do resource.set_texture().
Teksturę można użyć bezpośrednio na komponencie modelu za pomocą go.set():
go.set("#model", "texture0", my_texture_id)
Jeśli tekstura ma być używana na komponencie sprite’a, najpierw musi zostać użyta przez atlas. Użyj resource.create_atlas(path, params), aby utworzyć atlas:
local params = {
texture = texture_id,
animations = {
{
id = "my_animation",
width = width,
height = height,
frame_start = 1,
frame_end = 2,
}
},
geometries = {
{
vertices = {
0, 0,
0, height,
width, height,
width, 0
},
uvs = {
0, 0,
0, height,
width, height,
width, 0
},
indices = {0,1,2,0,2,3}
}
}
}
local my_atlas_id = resource.create_atlas("/my_atlas.texturesetc", params)
-- przypisz atlas do komponentu 'sprite' w tym samym obiekcie gry
go.set("#sprite", "image", my_atlas_id)
-- odtwórz "animację"
sprite.play_flipbook("#sprite", "my_animation")