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
Embora imagens individuais sejam usadas com frequência como origem para sprites, por motivos de desempenho as imagens precisam ser combinadas em conjuntos maiores de imagens, chamados atlases. Combinar conjuntos de imagens menores em atlases é especialmente importante em dispositivos móveis, onde memória e poder de processamento são mais escassos do que em computadores desktop ou consoles de jogos dedicados.
No Defold, um recurso de atlas é uma lista de arquivos de imagem separados, que são automaticamente combinados em uma imagem maior.
Selecione New... ▸ Atlas no menu de contexto do navegador Assets. Dê um nome ao novo arquivo de atlas. O editor abrirá o arquivo no editor de atlas. As propriedades do atlas são exibidas no painel Properties, onde você pode editá-las (veja detalhes abaixo).
Você precisa preencher um atlas com imagens ou animações antes de poder usá-lo como origem gráfica para componentes de objetos, como sprites e componentes ParticleFX.
Certifique-se de ter adicionado suas imagens ao projeto (arraste e solte os arquivos de imagem no local correto no navegador Assets).
Arraste e solte imagens do painel Assets para a visualização do editor.
Como alternativa, use Right click na entrada raiz Atlas no painel Outline.
Selecione Add Images no menu de contexto popup para adicionar imagens individuais.
Uma caixa de diálogo é aberta, na qual você pode encontrar e selecionar as imagens que deseja adicionar ao atlas. Observe que você pode filtrar os arquivos de imagem e selecionar vários arquivos de uma vez.

As imagens adicionadas são listadas em Outline, e o atlas completo pode ser visto no centro da visualização do editor. Talvez seja necessário pressionar F (View ▸ Frame Selection no menu) para enquadrar a seleção.

Selecione Add Animation Group no menu de contexto popup para criar um grupo de animação flipbook.
Um novo grupo de animação vazio, com um nome padrão (“New Animation”), é adicionado ao atlas.
Arraste e solte imagens do painel Assets para a visualização do editor para adicioná-las ao grupo selecionado no momento.
Como alternativa, use Right click no novo grupo e selecione Add Images no menu de contexto.
Uma caixa de diálogo é aberta, na qual você pode encontrar e selecionar as imagens que deseja adicionar ao grupo de animação.

Pressione Space com o grupo de animação selecionado para pré-visualizá-lo, e Ctrl/Cmd+T para fechar a pré-visualização. Ajuste as Properties da animação conforme necessário (veja abaixo).

Você pode reordenar as imagens em Outline selecionando-as e pressionando Alt + Up/down. Também é fácil criar duplicatas copiando e colando imagens no outline (pelo menu Edit, pelo menu de contexto do botão direito ou por atalhos de teclado).
Cada recurso de atlas tem um conjunto de propriedades. Elas são exibidas no painel Properties quando você seleciona o item raiz na visualização Outline.
/builtins/materials/*_paged_atlas.material.
search=replace.
O nome original de cada imagem (o nome base do arquivo) será transformado usando esses padrões. (Por exemplo, um padrão hat=cat,_normal= renomeará uma imagem chamada hat_normal para cat). Isso é útil ao combinar animações entre atlases.Aqui estão exemplos das diferentes configurações de propriedades com quatro imagens quadradas de tamanho 64x64 adicionadas a um atlas. Observe como o atlas salta para 256x256 assim que as imagens não cabem em 128x128, resultando em muito espaço de textura desperdiçado.

Cada imagem em um atlas tem um conjunto de propriedades:

Além da lista de imagens que fazem parte de um grupo de animação, há um conjunto de propriedades disponível:
None não reproduz nada; a primeira imagem é exibida.Once Forward reproduz a animação uma vez, da primeira até a última imagem.Once Backward reproduz a animação uma vez, da última até a primeira imagem.Once Ping Pong reproduz a animação uma vez, da primeira até a última imagem, e depois volta para a primeira imagem.Loop Forward reproduz a animação repetidamente, da primeira até a última imagem.Loop Backward reproduz a animação repetidamente, da última até a primeira imagem.Loop Ping Pong reproduz a animação repetidamente, da primeira até a última imagem, e depois volta para a primeira imagem.A partir do Defold 1.4.2, é possível criar uma textura e um atlas em runtime.
Use resource.create_texture(path, params) para criar um novo recurso de textura:
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)
Depois que a textura for criada, você pode usar resource.set_texture(path, params, buffer) para definir os pixels da textura:
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)
Também é possível usar resource.set_texture() para atualizar uma sub-região da textura usando uma largura e altura de buffer menores que o tamanho total da textura e alterando os parâmetros x e y de resource.set_texture().
A textura pode ser usada diretamente em um componente de modelo usando go.set():
go.set("#model", "texture0", my_texture_id)
Se a textura deve ser usada em um componente de sprite, ela precisa primeiro ser usada por um atlas. Use resource.create_atlas(path, params) para criar um 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)
-- atribui o atlas ao componente 'sprite' no mesmo go
go.set("#sprite", "image", my_atlas_id)
-- reproduz a "animation"
sprite.play_flipbook("#sprite", "my_animation")