sábado, 9 de maio de 2009

XNA 3.0 Colisões

Por adriano

Uma das coisas mais importantes na hora de se desenvolver um jogo é ter controle sobre as colisões que o personagem fará, pois devido a elas são executadas ações que dão vida ao game. Neste artigo vou apresentar duas formas de colisões: entre objetos e com a tela.

Colisão entre objetos

Crie a textura que será um personagem na tela
Texture2D textura;
Crie uma posição para sua textura na tela
Vector2 posicao = new Vector2(50,50);
Crie a textura que o personagem colidirá
Texture2D Inimigo;
Crie a posição desta textura
Vector2 posi_inimigo = new Vector2(150, 150);

//No método load carregue as texturas como nos artigos anteriores
//inserindo uma imagem e atribuindo uma textura
textura = Content.Load…
Inimigo = Content.Load...

//É neste Método abaixo que vamos realizar a colisão
protected override void Update(GameTime gameTime)
{
//Faça um controle da movimentação de seu personagem como nos artigos anteriores
Teclado = new keyboard.GetState()
if (teclado.IsKeyDown(Keys.Up))
{
//velocidade do objeto
posicao.Y -= 2;
}
//E assim por diante. . .
//Depois insira o código abaixo que checa a colisão



}//Fim do Update

No método Draw exiba as texturas na tela como nos artigos anteriores
//...
SpriteBatch.begin();
SpriteBatch.Draw(textura, posicao, Color.White);
SpriteBatch.Draw(inimigo, posi_inimigo, Color.White);
SpriteBatch.end();

Agora é só apertar F5 e conferir o resultado

Colisão com a tela
Acrescente este código ao anterior
protected override void Initialize()
{
//Fixando o tamanho da tela
graphics.PreferredBackBufferWidth = 400;
graphics.PreferredBackBufferHeight = 400;
}



//Aperte F5 novamente e confira!!!

Uma vídeo aula sobre este assunto ficará disponível em breve.
Valeu!!! Até a próxima...