Artigo
Um Panorama sobre o objeto SpriteBatch do XNA
Uma breve abordagem sobre o objeto SpriteBatch.
Enviado por Luciano José em 19/5/2008 0:00:00

No XNA, as imagens são representadas através do objeto Texture2D. O XNA provê uma classe para renderização desses objetos – a classe SpriteBatch.
 
O construtor da classe SpriteBatch:
 
public SpriteBatch (GraphicsDevice graphicsDevice)
 
Quando se instância um objeto SpriteBatch, ele recebe como parâmetro um graphicsDevice.
 
Quem de fato mostra as texturas(Texture2D) na tela é o graphicsDevice.
 
Um SpriteBatch, além de ter como função a “renderização” de várias texturas utilizando o mesmo graphicsDevice. Ele também funciona como:
 
  • Uma abstração aos métodos de renderização de um graphicsDevice;
  • Um gerenciador(Built-in) de sprites, provido pelo XNA FrameWork.
 
Se o XNA não provesse a classe SpriteBatch, possivelmente, se você quisesse mostrar alguma textura na tela, você teria que aplicar a sua textura à  alguma(s) primitiva(s) geométrica(s); o XNA, com o SpriteBatch, faz isso por você. Para renderizar essas primitivas, você utilizaria alguns destes métodos de um objeto graphicsDevice: DrawIndexedPrimitives, DrawPrimitives, DrawUserIndexedPrimitives ou DrawUserPrimitives.
 
Além de ter que manipular a sua textura, “como se estivesse” manipulando um modelo 3D, se o SpriteBatch não existisse, você teria que, por exemplo, montar algoritmos matemáticos para obter alguns dos resultados enumerados abaixo:
 
  • redimensionar a textura;
  • Numa situação aonde você tenha um grid de imagens, e você quer escolher alguma determinada região retangular e renderizar apenas essa região;
  • Rotacionar a textura;
  • Dentre outros resultados.
 
O SpriteBatch também permiti que você possa:
 
  • Abilitar o efeito de Alpha Blending;
  • Tingir a sua textura com alguma cor;
  • Dentre outras possibilidades.
 
 
O spriteBatch é por muitos, considerado um tanto limitado e especula-se na necessidade de mais cedo ou mais tarde, implementar seus próprios shader´s para conseguir obter funcionalidades customizadas. Mesmo assim, com ele ainda é possível construir vários jogos interessantes
 
 
Um dos principais, e também mais utilizados, membros do SpriteBatch:
 
  • SpriteBatch.DrawString
 
Informações sobre esse método e suas utilidades, você encontra no artigo do José Ferreira e André Furtado:
 
  • SpriteBatch.Draw
 
Este método adiciona um sprite a um “lote(coleção)” de sprites do SpriteBatch, com intuito de renderizá-los.
 
Antes de desenhar algum sprite na tela, é necessário fazer uma chamada ao método SpriteBatch.Begin; esse método prepara várias variáveis de ambiente.
 
O padrão para o SpriteBatch é que todos os sprites são mostrados, de fato, quando o método SpriteBatch.End é chamado. Mas, esse comportamento pode ser modificado quando o SpriteSortMode é alterado.
 
O método SpriteBatch.Begin, provê como passagem de parâmetro, vários objetos que modificam o comportamento de como a textura será mostrada na tela.
 
 

Sobre o Autor

lucianoJose
Luciano José
MCP, MCTS. Administrador do SharpGames. Sou de Pernambuco! Meu Blog: lucianojosefj.spaces.live.com

Clique para avaliar:

Comentários
" Vlw aew Jalf. Parece que já consegui outro marco. O outro marco foi com o 1º artigo de 2008 do SharpGames. Além de ter feito e publicado o artigo na virada de ano de 2007 para 2008. Só por curiosidade, existe alguma anormalidade em fazer e publicar artigo na virada de ano?"
Enviado por lucianoJose em 20/5/2008 14:02:59:
 
" Primeiro artigo do novo Sharpgames! Parabens :)"
Enviado por jalf em 19/5/2008 22:46:34:
 

Adicione seu Comentário  Voltar
Translator
AdSense

Amazon

Logos do XBox 360, XNA e Games For Windows
Copyright 2008 por SharpgamesPolítica de Privacidade  |  Termos de Uso