|
 | | |
|
| |  |   |  |  | |  |  | |  |  | |  |  | |  | |
 | | |
| Usar mais de 1 SpriteBatch |
|
|
Gostaria de saber se é possivel usar mais de 1 SpriteBatch, o problema é o seguinte, durante o processod e draw do meu game, terão varios sprites e poderá haver sprites com diferentes "SpriteBlendMode" por exemplo uma chama, fica com efeito legau com o SpriteBlendMode.Additive, o fundo pode ser com SpriteBlendMode.None pois nao usa nenhum efeito "Alpha-Blend", já os demais sprites usa-se o SpriteBlendMode.AlphaBlend, dai vem a dúvida, seria bom eu usar 3 SpriteBatch diferentes, 1 para cada situação ou teria outra forma de contornar este problema.
Até mais... |
|
|
|  |  | | |
| Re: Usar mais de 1 SpriteBatch |
|
|
Eu não tenho experiencia em usar m monte de spritesBatchs.
Mas eu usaria um só. Já que o SpriteblendMode se define no spritBatch.Begin(blabla);
Então, é só trocar na hora. Tipo:
SpriteBatch.Begin(SpriteBlendMode.Additive);
spriteBatch.Draw( BLABAL);
spriteBatch.End();
SpriteBatch.Begin(SpriteBlendMode.None);
spriteBatch.Draw( BLABAL);
spriteBatch.End();
SpriteBatch.Begin(SpriteBlendMode.AlphaBlend);
spriteBatch.Draw( BLABAL);
spriteBatch.End();
Entendeu?
FLW E VLW! Meu site com Video-Aulas de Tutoriais: www.devtuts.com.br |
|
|
|  |  | | |
| Re: Usar mais de 1 SpriteBatch |
|
|
O problema é o seguinte, se eu tiver por exemplo 20 sprites pra desenhar na tela, eu vou construir uma array de sprites colocando eles ja na ordem de desenho para simular as "camadas" e agilizar o processo tambem, sendo assim terão vários tipos de draw auternados, sendo inviável dar SpriteBatch.Begin e spriteBatch.End a cada sprite, axo mais facil criar os 3 spriteBatch e no inicio do draw iniciar os 3 e finalizar os 3 ao final:
SpriteBatch1.Begin(SpriteBlendMode.Additive);
SpriteBatch2.Begin(SpriteBlendMode.None);
SpriteBatch3.Begin(SpriteBlendMode.AlphaBlend);
// Rotinas de draw
SpriteBatch1.End();
SpriteBatch2..End();
SpriteBatch3..End(); |
|
|
|  |  | | |
| Re: Usar mais de 1 SpriteBatch |
|
|
Oras, faça uma lista de sprites com trasparencia e outra de aditive.
Ai mete um foreach em cada uma num gameComponent ^^
FLW E VLW! Meu site com Video-Aulas de Tutoriais: www.devtuts.com.br |
|
|
|  |  | | |
| Re: Usar mais de 1 SpriteBatch |
|
|
Bem, gostaria de deixar claro que nao estou defendendo minha "teoria" mais é que ainda a vejo como a mais viável.
Não entendi sua colocação quanto a "Ai mete um foreach em cada uma num gameComponent ^^" como estou iniciando no XNA nao entendi a expressão, mais minha dúvida é a seguinte, mesmo que eu as separe em grupos, terei mesmo assim que fazer SpriteBatch.Begin e SpriteBatch.End 3 vezes, esntão não vejo o porque de não usar 3 componentes diferentes, eu sei que economizaria 2 variaveis SpriteBatch (não sei se ele consome muita memoria), mais pouparia muito o trabalho de ter que diferenciar listas de sprites, e mais cuidados como o que você descreveu.
Até mais e valew.. |
|
|
|
|  |  | |  |  | |  |  | |  |
|
|
| | |
|
|
|  |
 |  |
|