Sinopse
1. Apresentação2. Sprite3. Função SpriteBatch.Draw()4. Classe de Animação2D5. Automatizando nossa classe6. Referências7. Agradecimentos
1. Apresentação
2. Sprite
• Definição: – Do latim spiritus, significando "duende", "fada“.
• Objetivo:– Simular objetos 2,5D ou 3D.
• Formatos usados:– Qualquer formato que possua transparência (ex.:
png)– Qualquer formato sem tranparencia, mas com um
fundo de cor fixa (ex.: jpg)
Transparente
Opaco
M-M-M-MONSTER KILL
2. Sprite
• Estranho?– Cadê o Link andando para a esquerda?
• Não Precisa!– Basta inverter ele andando para a direita.
2. Sprite
• Frame– É um quadro ou retâgulo do sprite que é exibido
como se fosse uma imagem independente.– É como se colocassemos um papel com um furo
retangular que cobrisse o sprite inteiro e movessemos esse papel sobre o sprite: • Veremos apenas aquilo que estiver dentro do quadro.• Se olharmos apenas para o quadro, e o mesmo saltar
em imagens sequenciais, veremos uma Animação2D!!!
2. Sprite
2. Sprite
• Quadros que andam
2. Sprite
• Funcionamento:1. A imagem inteira é carregada para a memória
na etapa de carregamento do jogo.2. Apenas um “Frame” da imagem é exibido por
vez.3. A cada X clocks do game, o quadro pula para
uma nova posição.
2. Sprite• Qual o melhor sprite? (Suponha que ambas tenham a mesma quantidade de frames)
– Para o programador?• Lembra dos quadros que andam?
– Para o cartucho?• A primeira figura é mais compacta e ocupa menos espaço nos cartuchos
3. SpriteBatch.Draw()
• É uma função com vários “overload”• Irei mostrar apenas um.– Tarefa de casa: conhecer os outros “overload”.
• Assinatura:– SpriteBatch.Draw(Texture2D, Rectangle,
Nullable<Rectangle>, Color)• Uso:– spriteBatch.Draw(spriteSheet, destinationRect,
sourceRect, Color.White);
3. SpriteBatch.Draw()
• Rectangle(X, Y, Width, Height)
(X,Y)
Width
Height
3. SpriteBatch.Draw()
• Vide projeto exemplo1.– Altere o valor do inteiro na linha 33: “int
spriteWidth = 64;” e veja o erro que ocorre.• Isso ocorrerá com muita frequencia
• Vide projeto exemplo1_mod.– Outro sprite com outra animação
• Vide Projeto exemplo1_mod2– Vide cor de transparencia definida para o branco
4. Classe de Animação 2D
• Vide projeto exemplo2.
5. Automatizando nossa Classe
• Vide projeto exemplo3.
6. Referências
• ShyGuy Kingdom• PlanetRenders• XNAfusion• MSDN
7. Agradecimento
spriteBatch.DrawString( Arial, "Obrigado Pela Atenção!", positionVect, Color.Black);