Esta segunda parte do nosso tutorial visa explicar um pouquinho sobre o código que já vem implementado ao criarmos um projeto no XNA Game Studio, adicionar uma imagem ao projeto e exibi-la na tela.
Na parte um do nosso tutorial criamos com sucesso nosso primeiro projeto e percebemos que ao rodar o nosso projeto sem fazer nenhuma alteração no código temos um "jogo" que é apenas uma tela azul e nada ocorre. Na verdade temos algumas coisas acontecendo por trás daquela tela azul que iremos analisar dentro do código que já nos é gerado pelo XNA Game Studio
Abriremos novamente o Visual C# 2005 Express Edition e o nosso projeto ou pela Start Page em Recent Projects ou por File->Open Project... se sabemos sua localização.
Voltamos a ter nosso Game1.cs aberto, caso o Game1.cs não esteja aberto no seu projeto é só dar um duplo clique em Game1.cs no Solution Explorer, vamos analisar o codigo implementado nesse arquivo.
Analisando o Código
Ao rolarmos o codigo e lermos um pouco ele vemos muitas coisas. Logo no início do arquivo temos vários using, temos o namespace do projeto e a classe Game1(public class Game1) que é a classe em que iremos nos focar pois é onde quase tudo acontece. Podemos perceber que a classe Game1 é uma classe derivada da classe Microsoft.Xna.Framework.Game (public class Game1 : Microsoft.Xna.Framework.Game) e esta é uma classe base do XNA framework que tem encapsulada criação de janelas, gráficos, audio entre outros.

Initialize()
É o método onde faremos todas as nossas inicializações não gráficas. Ele é chamado uma vez quando rodamos o nosso jogo. Não inicializamos as partes gráficas nele pois é comum um jogo ter que recarregar as partes gráficas por exemplo quando mudamos sua resolução.

É o método onde carregaremos todos os gráficos do nosso jogo. Ele é chamado toda vez que o jogo tiver que carregar ou recarregar os gráficos como por exemplo o caso de mudança de resolução dado acima.

É o método onde adicionamos todos os cálculos do nosso jogo como leitura e processamento de entradas do usuário, movimentos , colisões, inteligência artificial entre outros. Ele é chamado diversas vezes durante um jogo pois faz parte do loop em que o jogo fica até seu fim.

É o método onde inserimos todo o código responsável pela renderização dos objetos do nosso jogo, ou seja, é ele que desenha tudo na nossa tela.

obs: temos também o método UnloadContent() que não estou comentando pois geralmente não inserimos nenhum código extra nele pois ele tem a função de liberar recursos do nosso jogo mas isso já é feito automáticamente quando aquele recurso deixa de ser necessário.
Agora que já entendemos um pouco das partes em que nossa classe Game1 é dividida podemos começar uma parte mais divertida. Iremos adicionar a nossa imagem ao projeto e iremos exibi-la na tela.
Adicionando Nossa Imagem
Antes de iniciarmos irei disponibilizar uma imagem de um aviãozinho que desenhei especialmente para ilustrar este tutorial.

Agora que já temos nossa imagem, iremos no Solution Explorer que fica do lado direito da janela do Visual C#, caso não esteja aparecendo clique no menu View->Solution Explorer.


Exibindo a Imagem na Tela
Para exibirmos nossa imagem na tela ao rodarmos o nosso "jogo" devemos fazer algumas adições ao código.
A primeira delas é declarar, na classe Game1, abaixo das declarações de graphics e spriteBatch, uma variável que chamaremos de "myPlane" do tipo Texture2D. Essa variável irá armazenar a informação sobre a nossa imagem. Logo abaixo da declaração que acabamos de fazer, iremos declarar outra variável que chamaremos de "planePosition" do tipo Vector2. Essa outra variável armazenará a posição de nosso aviãozinho e iremos inicializá-la como um vetor zero como podemos ver abaixo.




Resumo
Nesta parte do nosso tutorial conseguimos desenhar nossa primeira imagem na tela usando o XNA Game Studio! Nosso proximo passo será dar alguma movimentação a essa imagem e faze-la colidir com os limites da nossa tela.
Salve seu projeto e aguarde a ultima parte do nosso tutorial.
4 comentários:
Estou começando em XNA e em C#, obrigado por fazer esse trabalho de inicialização. Espero que possa continuar com seus tutoriais. =)
Estou estudando esse seu tutorial e está muito bom. Parabéns!
Ótimo post!
Apareceu agora que "O nome 'SpriteBlendMode' não existe no contexto atual", faltou adicionar alguma biblioteca ou o que eu fiz de errado?
Quando eu simplesmente tiro o parâmetro desse 'Begin', e tento rodar o 'jogo', aparece que não conseguiu encontrar o arquivo 'plane', e eu já conferi que ele está na pasta, ele já foi adicionado pelo processo dito nesse tuto...
Postar um comentário