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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoq4iWzzEtkrYxv3Ff0h8D-Vet87js1E_sHtCjZ0zbI41tccf3M9-P4Voq-jvscYuZx_JTZbbQ4uYKgwhcTi4Qi27uGLyLxhdHUXiCl9JoQ-gbC0Iz11vFChI5mNgTtC9JdNvQkQ4blq4/s320/meuprojeto_game1_class.jpg)
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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIURXvY1qKugOi9751r_orfErMWIiqOUS9SefYw0Y8fhuDzo0Chyphenhyphen7CMgEzucwTC-ofeuljdLmrf0Tc3WgYdsTxMGlFCXxFc_wxQ4LRnkk1sFEXGdgSnwb1z43CZuXIxrfb78cfJN0OjBc/s320/meuprojeto_initialize_method.jpg)
É 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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-JafSNoBOnq03nbqcoJM_CJa1xPasnuT5xVqEp2fdfXYA7DhHZeTh9FfIlSQ4fXwjGP6KWgPcCA5Cpdu2sL1sCQESGEPDlTAALTCD0EEdBefWSP67WXFU-6dDrnGktV24kkEGj677Wbs/s320/meuprojeto_loadcontent_method.jpg)
É 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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAm362urjKL62qayw_0adChhj6grNYSksiokOzaIaV0_-ZfhDTWYSe5aksfjSiPNmTrnUad7tYOGg-wTCKVpaSXEdqqOV7e-5FgAJ1cDw_k4ccHpxE4KhoBM2exsIyL_1ybalBugzb3X8/s320/meuprojeto_update_method.jpg)
É 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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtfnb43uqGeeRPa_1TVO4N05fWSLQ8CQdYrhcAVvM_J-bZEyRDTZ67OL0APz6EHGcU-kB03xA8zSllh36Qk6FhzwWww0Q2amh2Ufv_3pgfhygauGrJL2y0Gvgzuk1sNc8AaIhyphenhyphenTnDq7fU/s320/meuprojeto_draw_method.jpg)
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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpzpsSQ8dL70CPNDluSTKte-qZiKiR_TqK1sPg8UFjahOy90LwLfm6NSfS-xVvZJ5YeltRmcD-_Wu99u56VCzYly8mYAFPvNA9GsEjl-3TbCjLGusCVjmo3tN8W60XYBOGbctYrfbbDLs/s320/plane_example.png)
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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicve9xjZXvuu75o3n176_ytZqgvlnrg6ME9k4-j82KVPXS3lNiZmeoOqbQorVtR_fHZMMQHUu6Hmb3pXnT-K-ifF0o1C6fD3Pv851Yr8AHEMO_bMYbHQyNKQTCub-Q9duyKNyqV_ZPWlU/s320/meuprojeto_content_add.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCCKOuVC4qcKWleCi6tHE1-HQzNQ5xfC7AqNIoSxFR_Ekm1Ezew3hQV2UMkOR053s5VYm1MtW2OFmpxUWp81PMl2bsAv3dQ564-hZsD_RlArukEBV52eXjyvBPfLMf_IrPN1e-TVSkqQ8/s320/meuprojeto_content_plane.jpg)
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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbaOwa-lKtFH1ZAW6bEQVJtnhqoJd5_puMWoT9F5UDbBMFZ0VBHubwHp5dPXBzueWUkPSSQcrHBWuHE8Iz7kKrg2RM0eu_iKh-Vi7MWQUrpockuhvEkZjfGWaWzWIyZauI9e0is2ul36g/s320/meuprojeto_declarations.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0zIc8dgMVnHQFo0tm1hu7gKZCOpCaRy0vzZcc8QTxmlad5QrzhWmfTclAY1E-_kFaZr5L6we1yWwAz5vdF0pIh0O_wWX-MRG92OE1d6BjZPThqwpM11a3KoiP-4KhNQneUXhoiMDswrU/s320/meuprojeto_loadcontent.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4NAMJ0UTTQ_CbkdMRrCFSRXfUZHsl_q7YHsrpPvpecm3YOajz54CduVG1-OziZxPBDQ6KclmXKBuHtTNzLhEIyzmo_rMuu7DIGdKsPR_PFqnRh7Vrfypt2qDwRtnJVkUBzGV3S6RGKiU/s320/meuprojeto_draw.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSIiiVa-6jCvqgEB07Fbe_GzHZs-3WAGYsVOdRA8Flq88KFQsW6m23DUj4bETziVx3jAsYZZHDkL6lqBNbRZhE_WSTIxwEz0FQpQJwG_qilHInQzdJWlv3WnOJ0S8yvEby1_L6CemXo8M/s320/meuprojeto_aviao.jpg)
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