Tratando Bitmaps como Sprites utilizando XNA no Windows Phone 7

Nos próximos artigos abordaremos vários assuntos, mas todos eles relacionados a classe SpriteBatch.

Um jogo pode ser feito somente utilizando Vetores 2D e Wireframes 3D, mas já aprendemos como o uso de bitmaps são importantes.

Recomendo fortemente a leitura e os exercícios práticos dos posts abaixo antes de continuar.

Crie seu primeiro projeto XNA 4.0 para Windows Phone 7

Entendendo o User Input no Windows Phone 7 com XNA

Utilizando gestos no Windows Phone 7

Desenhando Bitmaps com XNA no Windows Phone 7

 

 

Bitmaps são importantes. Em 1970 os hardwares que existiam não tinham o poder que possuem atualmente por motivos desnecessários de citar, porem algumas coisas não sofreram melhorias, elas simplesmente não existiam, e um destes era literalmente o poder de "rasterizar" um bitmap. No passado acharam que isto era impossível.

Alguém (se alguém souber, por favor coloque nos comentários) fez o impossível, então faça bom proveito! Smiley

Lembrando, falar em Bitmaps não necessariamente significa que o game será 2D, correto?

Qual é a diferença entre um Bitmap e um Sprite?

Para responder esta pergunta de modo bem simplista, diria que um Sprite é um Super Bitmap! (ao infinito e além!) Tirando minha empolgação, eu quis dizer que um Sprite é um Bitmap porém somado a um pacotão de benefícios. Um Bitmap ++

Não se preocupe, com a leitura destes posts tudo ficará cada vez mais claro. Algumas dúvidas e perguntas que tem agora, você mesmo irá responder se continuar seu empenho e exercícios.

O XNA fornece a classe SpriteBatch para desenhar bitmaps com o método SpriteBatch.Draw() , o qual possue muitas "variantes de sobrecarga", o que chamamos frequentemente de overload.

Importante, a classe SpriteBatch é uma classe para renderização usada somente para desenhar e não gerenciar as entidades presentes na tela (os Sprites)

Você achou que nestes posts iria somente brincar de touchscreen, "desenhar navinhas" , fazer testes visuais no emulador do Windows Phone 7..rs Mas as vezes precisamos nos dedicar em conceitos e praticas fundamentais para não fazer falta lá na frente e consequentemente isto irá acelerar o processo de aprendizagem ok? Continue com garra.

Ainda falando do SpriteBatch, vamos analisar somente metade do nome da classe, o Batch.

"Batch" significa lote, uma grande quantidade porem reunida em algo que torne os elementos parte de um grupo comum. Uma fornada de pães é um "batch".

Por que isto é importante? Muitas vezes você precisará trabalhar com múltiplos Sprites na tela certo? Olha aí tudo fazendo sentido..

Todos os Bitmaps chamados via SpriteBatch.Draw() são colocados em uma queue* e serão desenhados rapidamente quando o SpriteBatch.End() for chamado.

* "queue" significa "fila" em português, porem alguns termos eu realmente sugiro manter o nome mais popular justamente para facilitar sua comunicação e interpretação quando se deparar com o termo em livros, fórum, artigos e assim por diante. Assim como falamos "stack" para pilha, mesmo propósito. Ou então em uma consulta SQL, se você diz que fez um "select", a pessoa com quem está conversando sabe que você está literalmente falando do comando para a consulta, como uma "procedure". Olha aí mais uma palavrinha mágica.

Manter o termo em inglês facilita nossa comunicação em muitos pontos, e é somente por isso que utilizaremos quando necessário, ok?

O SpriteBatch.Draw() pode gerenciar animação, rotação, dimensionamento e movimentação. Mas sem o uso das propriedades já existentes, nós teríamos que codificar para trabalhar com todas estas possibilidades do SpriteBatch utilizando variáveis globais. E acredite, esta tarefa pode ser muito tediante (mas há quem goste).

A mais simples e comum propriedade para um Sprite por exemplo, é a definição da sua posição na tela, o que utilizamos a variável "shipPos" no post anterior. Ou então, para trabalhar com texturas, o que utilizamos também no post anterior a variável "shipImage" .

Nos próximos posts entraremos a fundo no tema ok? Veja o material que criamos  já em português aqui no Channel 9.

No início do post listei alguns posts dedicados a XNA. Abaixo outros voltados a introdução e marketplace do Windows Phone 7.

Visão geral do MVA - entendendo o roteiro de Windows Phone

O Windows Mobile e o Windows Phone

Visão geral do Windows Phone 7.5 (codinome Mango)

Visão geral do conceito Metro

Visão geral do SDK do Windows Phone

Visão geral das ferramentas de desenvolvimento para Windows Phone

Visão geral do Emulador

Testando sua app no device

Criando Protótipos

O que é o Windows Phone Marketplace parte 1 - Publicando sua app no Marketplace

O que é o Windows Phone Marketplace parte 2 - Publicando sua app no Marketplace

Marketplace Test Kit

Os posts continuarão assim, simples, de leitura rápida e focados em temas específicos. Imagino que seu dia a dia deva ser muito corrido, e com leitura rápida e exercícios praticos também rápidos, você terá mais facilidade em acompanhar e continuar seus estudos relacionados a Windows Phone 7 e XNA!

hugs from the cave