-
Title:
PS 04-09 Renderização da Saída do Pacote de Textura
-
Description:
-
Com isso em mente, sua próxima tarefa
requer que você use o arquivo de dados
-
que você analisou para renderizar as
poucas imagens na tela. Você precisará preencher
-
as duas funções abaixo para desenhar corretamente imagens na tela. Agora, antes de você
-
começar, vamos falar sobre uma coisa rápida.
Perceba que, até agora,
-
seus artistas estavam, na verdade, criando objetos referenciando arquivos soltos.
-
E os artistas criam algum tipo de textura,
colocam no disco, e então eles
-
referenciam um objeto àquela textura.
Bem, com certeza, existe um processamento posterior.
-
Nós temos todos eles amontoados em em uma caixa pequena, e agora temos uma correlação
-
faltando. O arquivo do artista ainda
vai referenciar o objeto solto.
-
Mas teremos esse objeto colocado ao redor de uma textura maior. Como nós fazemos a conexão
-
entre os dois? A função "drawSprite"
precisa arrumar isso. Ela assume que
-
será dado um "spritename", que representa
o nome do arquivo do objeto solto,
-
assim como a posição X e a posição Y
de onde ela vai renderizá-lo na tela.
-
Já que estamos dando o "spritename",
precisamos também mapear onde esse
-
"spritename" existe dentro dos atlas
que nós carregamos. Agora, para seu
-
benefício, nós vamos te ajudar com isso.
Olhando no topo do arquivo,
-
nós definimos um objeto dicionário global
que representa cada página com objetos gráficos
-
que já foi carregada. Na função de carregamento para a página de objetos gráficos, vamos adicionar
-
essa página de objetos gráficos no vetor global,
definindo o nome da página como a chave para
-
o elemento dicionário. O que isso te
permitirá fazer é quando você recebe um
-
"spritename" dentro da função de desenho,
você pode passar através de todas as
-
páginas de objetos gráficos e para cada página de objetos gráficos, determinar se o "spritename" dado existe ou não
-
nos objetos gráficos que foram definidos
para aquela página.
-
Isso deve ser bem direto, dado que
nós já cobrimos a definida
-
função "sprite" e você já tem a lista que inclui um nome. Uma vez que a função "drawSprite"
-
descobre em que atlas esse
objeto gráfico está,
-
ela pode passar esses dados para "drawSpriteInternal", entregando a informação do objeto gráfico,
-
de qual página de atlas ele está vindo,
assim como a posição X e Y,
-
que nos foi dada pelo "drawSprite". "DrawSpriteInternal" deve, na verdade, fazer o trabalho pesado
-
de posicionar do elemento,
e desenhá-lo para o mundo, aproveitando o API
-
de desenho de imagens que nós acabamos de cobrir, com todos os seus novos parâmetros de sinos extravagantes e
-
assobios.