Vous êtes sur la page 1sur 48

Curso XNA

O que O XNA?
XNA a atual plataforma gratuita de desenvolvimento de Jogos da Microsoft, com ele possvel desenvolver jogos para computadores com Windows, XBOX 360, Windows Phone 7 e Zune. A atual verso da Plataforma a 4.0.

Curso XNA
O que O XNA?
O XNA Game Studio um ambiente de desenvolvimento de jogos integrado ao Visual Studio. Junto com a IDE de desenvolvimento vem diversas outras ferramentas utilizadas no processo de desenvolvimento de jogos.

Curso XNA
O que O XNA?
O mais legal que todas as ferramentas que voc precisa para desenvolver jogos em XNA so gratuitas, mesmo que voc desenvolva jogos comerciais!

Curso XNA
Requisitos para rodar XNA Studio 4.0
O XNA Studio pode rodar nas ultimas verses dos sistemas operacionais Microsoft: XP, Vista e 7, em praticamente todas as edies.

Curso XNA
Requisitos para rodar XNA Studio 4.0
Em termos de hardware, seu equipamento precisa ter um placa de vdeo com suporte mnimo a Shader Model 1.1 e DirectX 9.0c. Qualquer placa de vdeo moderna razovel ter tal suporte.

Curso XNA
Softwares Necessrios
Primeiramente voc vai precisar de uma edio do Visual Studio 2010. Se voc ainda no tem nenhuma edio instalada, recomendo a edio C# 2010 Express Edition.

Curso XNA
Softwares Necessrios
Voc tambm vai precisar instalar o XNA Game Studio 4.0, que funciona como um complemento ao Visual Studio, integrado ao mesmo.

Curso XNA
Softwares Necessrios
Se voc pretende desenvolver jogos para Windows Phone 7, existe ainda uma instalao complementar que contm inclusive um emulador.

Curso XNA
Softwares Necessrios
Ainda voc vai precisar do Microsoft Framework 4.0, mas ele ser instalado como pr-requisito j na instalao do Visual Studio.

Curso XNA
Criando um projeto de Jogos no Visual Studio
Aps a instalao do XNA Game Studio uma nova pasta adicionada ao seu menu iniciar.

Curso XNA
Criando um projeto de Jogos no Visual Studio
Nesta pasta voc vai encontrar um atalho para o XNA Creators Club Online, a ajuda do Framework e diversas ferramentas de apoio.

Curso XNA
Criando um projeto de Jogos no Visual Studio
Veja que voc no vai desenvolver jogos por aqui, j que, como falamos, o XNA funciona integrado ao Visual Studio, na forma de um complemento.

Curso XNA
Criando um projeto de Jogos no Visual Studio

Curso XNA
Criando um projeto de Jogos no Visual Studio
Ento abra o Visual Studio 2010 ou o C# 2010 Express Edition. Acesse File/New/Project.

Curso XNA
Criando um projeto de Jogos no Visual Studio
Na janela New Project, selecione XNA Game Studio 4.0. Voc ver diversos templates para a criao de jogos em XNA.

Curso XNA
Criando um projeto de Jogos no Visual Studio
Um template um projeto de aplicao com a estrutura bsica necessria para o aplicativo, de forma que voc iniciar imediatamente a codificao.

Curso XNA

Curso XNA
Veja que o Visual Studio criou uma soluo com dois Projetos: WindowsGame1 e WindoewsGame1Content

Curso XNA
Criando um projeto de Jogos no Visual Studio
WindowsGame1 aplicao do jogo propriamente dita. O Projeto WindowsGame1Content um projeto de contedo, onde todos os recursos do jogo, como imagens, udio, fontes entre outros, sero armazenados.

Curso XNA
Criando um projeto de Jogos no Visual Studio
Veja no projeto principal que temos dois arquivos CS. Program.cs arquivo de entrada da aplicao. Observe o cdigo e veja que o procedimento principal da aplicao recebe um tipo Game1, executando o mtodo Run.

Curso XNA
Criando um projeto de Jogos no Visual Studio
Voc no vai precisar alterar este arquivo, a no ser em casos especficos em que, por exemplo, quer tratar algum parmetro de entrada na execuo de seu jogo.

Curso XNA
Agora vamos analisar o arquivo Game1.cs. Este o arquivo principal de nosso jogo.
using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media;

Curso XNA
Veja inicialmente que so includos diversos namespaces Microsoft.Xna.Framework. Cada um destes namespaces possuiu um conjunto especifico de classes para uso no desenvolvimento de jogos.

Curso XNA
Em nvel de classe temos duas variveis declaradas, uma do tipo GraphicsDeviceManager e outra do tipo SpriteBatch GraphicsDeviceManager graphics; SpriteBatch spriteBatch;

Curso XNA
O tipo GraphicsDeviceManager ter as configuraes da placa de vdeo onde o jogo estar sendo executado. Atravs de uma instancia deste tipo voc tambm configurar o vdeo, como por exemplo, a resoluo do jogo.

Curso XNA
O tipo SpriteBatch permite que um grupo de sprites sejam desenhados na tela ao mesmo tempo. O que so sprites?
So diversas imagens bidimensionais posicionadas de tal modo que representam o posicionamento especfico de cada um dos elementos que compem as cenas.

Curso XNA
Exemplo sprites

Curso XNA
O construtor da classe Game1, que inicializa a varivel graphics e define o diretrio padro de contedo.
public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; }

Curso XNA

Os prximos cinco mtodos formam o ciclo de vida do Jogo: Initialize, LoadContent, Update, Draw e Unload Content.

Curso XNA
O mtodo Initialize deve ser usado para inicializarmos todos os tipos que iremos usar em nosso jogo. protected override void Initialize() { // TODO: Add your initialization logic here base.Initialize(); }

Curso XNA
Em LoadContent , o contedo, como sprites, udio entre outros, devem ser carregado para posterior uso no jogo. protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // TODO: use this.Content to load your game content here }

Estes dois mtodos sero executados uma nica vez durante todo o jogo.

Curso XNA
Em update devemos escrever todo o cdigo de atualizao: Definir a nova posio do heri, verificar se ocorreu alguma coliso, atualizar o placar protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); // TODO: Add your update logic here base.Update(gameTime); }

Curso XNA
Em Draw todos os elementos grficos do jogo devem ser desenhados. protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); // TODO: Add your drawing code here base.Draw(gameTime); }

Curso XNA
UnloadContent devemos liberar todo o contedo que usamos na execuo do jogo, este mtodo tambm ser executado uma nica vez, o fim do jogo! protected override void UnloadContent() { // TODO: Unload any non ContentManager content here }

Curso XNA

Curso XNA
O cdigo inicial do mtodo Update faz com o jogo seja encerrado no XBOX 360. No mtodo Draw, a tela pintada de azul. no mtodo Draw que a magia do jogo acontece.

Curso XNA
Animao
A tela de seu jogo atualizada 60 vezes por segundo, cada atualizao conhecida tecnicamente como Frame. A taxa de atualizao, o FrameRate de seu jogo.

Curso XNA
Voc pode rodar a aplicao neste momento, o resultado ser uma tela azul:

Curso XNA
Perfil do Jogo
Vamos conhecer um pouco melhor a estrutura de uma aplicao XNA antes de iniciarmos a codificao. Clique com o boto direito sobre o projeto WindowsGame1, e selecione a opo Properties

Curso XNA
Voc ver as configuraes abaixo:

Curso XNA
Perfil do Jogo
Uma configurao importante, que voc deve conhecer, o Game Profile. O Perfil trata das caractersticas de hardware que o jogo vai utilizar.

Curso XNA
Perfil do Jogo
O XNA 4.0 traz dois tipos de perfis: Reach e HiDef. O primeiro suporta equipamento de alta performance, o segundo, utiliza menos recursos e deve ser compatvel com qualquer equipamento.

Curso XNA
Perfil do Jogo
Se voc esta desenvolvendo para PC com suporte a DirectX10 ou equivalente ou ainda para XBOX 360, use o perfil HiDef. Se o PC tem suporte inferior ou voc quer desenvolver para Windows Phone 7, use o perfil Reach.

Curso XNA
O perfil padro quando voc cria um projeto do tipo Windows Game o HiDef. Caso voc rode um jogo em um equipamento que no tem suporte a este perfil, ver um alerta como na mensagem:

Curso XNA

Curso XNA
Content Pipeline
No existe um jogo sem contedo: Imagens, modelos 3D, sons, fontes etc. O Content Pipeline o mecanismo de gesto deste contedo, transformando o mesmo em um formato acessvel ao jogo em tempo de execuo.

Curso XNA
Content Pipeline
Voc j observou que quando criou o projeto de seu jogo, um novo projeto criado, chamando pelo nome do projeto do jogo mais o sufixo Content.

Curso XNA
Content Pipeline
Neste projeto devemos organizar todo o contedo que utilizaremos no jogo, eles sero automaticamente localizados no projeto atravs de uma referencia que criada automaticamente quando criamos a aplicao.

Vous aimerez peut-être aussi