230 likes | 375 Views
Animação 2D. Alexandre Tolstenko Nogueira alexandre@tolstenko.net http://tolstenko.net. Sinopse. Apresentação Sprite Função SpriteBatch.Draw () Classe de Animação2D Automatizando nossa classe Referências Agradecimentos. 1. Apresentação. 2. Sprite. Definição :
E N D
Animação 2D AlexandreTolstenkoNogueira alexandre@tolstenko.net http://tolstenko.net
Sinopse • Apresentação • Sprite • FunçãoSpriteBatch.Draw() • Classe de Animação2D • Automatizandonossaclasse • Referências • Agradecimentos
2. Sprite • Definição: • Do latim spiritus, significando "duende", "fada“. • Objetivo: • Simularobjetos 2,5D ou 3D. • Formatosusados: • Qualquerformatoquepossuatransparência (ex.: png) • Qualquerformatosemtranparencia, mas com um fundo de corfixa (ex.: jpg)
2. Sprite • Estranho? • Cadê o Link andandopara a esquerda? • NãoPrecisa! • Basta inverter eleandandopara a direita.
2. Sprite • Frame • É um quadroouretâgulo do sprite que é exibidocomo se fosse umaimagemindependente. • É como se colocassemos um papel com um furoretangularquecobrisse o sprite inteiro e movessemosessepapelsobre o sprite: • Veremosapenasaquiloqueestiverdentro do quadro. • Se olharmosapenaspara o quadro, e o mesmosaltaremimagenssequenciais, veremosumaAnimação2D!!!
2. Sprite • Quadrosqueandam
2. Sprite • Funcionamento: • A imageminteira é carregadapara a memórianaetapa de carregamento do jogo. • Apenas um“Frame” daimagem é exibidoporvez. • A cada X clocks do game, o quadro pula parauma nova posição.
2. Sprite • Qual o melhor sprite? (Suponhaqueambastenham a mesmaquantidade de frames) • Para o programador? • Lembra dos quadrosqueandam? • Para o cartucho? • A primeirafigura é maiscompacta e ocupamenosespaçonoscartuchos
3. SpriteBatch.Draw() • É umafunção com vários “overload” • Ireimostrarapenas um. • Tarefa de casa: conhecerosoutros “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) • Width • (X,Y) • Height
3. SpriteBatch.Draw() • Vide projeto exemplo1. • Altere o valor do inteironalinha 33: “intspriteWidth = 64;” e veja o erro que ocorre. • Issoocorrerá com muitafrequencia • Vide projeto exemplo1_mod. • Outro sprite com outraanimação • Vide Projeto exemplo1_mod2 • Vide cor de transparenciadefinidapara o branco
4. Classe de Animação 2D • Vide projeto exemplo2.
5. AutomatizandonossaClasse • Vide projeto exemplo3.
6. Referências • ShyGuy Kingdom • PlanetRenders • XNAfusion • MSDN
7. Agradecimento spriteBatch.DrawString( Arial, "Obrigado Pela Atenção!", positionVect, Color.Black);