Introdução ao XNA e aoXNA Game DeveloperJosé Antonio “jalf” Leal de FariasMicrosoft Most Valuable ProfessionalSharpgames T...
Agenda O que é XNA?? XNA Game Studio XNA Framework Xbox 360 Xbox Live Community Games Criando um Jogo Aprendendo XNA
O que é XNA?? XNAs Not Acronymed (não é uma sigla) Plataforma de desenvolvimento de jogos com foco no jogo e não na tecnol...
Um pouco de história…. XNA Game Studio Express 1.0 lançado em12/2006 Foco não profissional ?? XNA Game Studio 2.0 lançado1...
XNA Game Studio                   XNA Game Studio                   Extende o Visual Studio para a                   criaç...
XNA Framework Games     Your Code              Your Content            Components            Starter Kits Extended Framewo...
Games                                                                         Starter Kits            Code           Conte...
Games                                                        Starter Kits            Code           Content            Com...
Games                                                      Starter Kits            Code           Content            Comps...
XNA Framework Content Pipeline  Importadores     Conteúdo de jogo adicionado ao Visual Studio                        3D Fi...
Xbox 360 Lançado em Novembro de 2005 Xbox Live Novos conceitos para os jogadores Um grande passo para o mundo dos games…
Xbox Live Community Games
Xbox Live Community Games
XNA 3.0Todo o suporte já criadomelhoradoSuporte ao ZuneZune, Xbox e Windows juntos?Final de 2008!!!
XNA 2D game“Rock Rain”   Construção de um jogo   simples   O jogador deve guiar a   nave evitando os   asteróides   É um j...
Construção de um jogo em XNABasedo na forma como um jogo funciona   Todo jogo tem algums comportamentos   fundamentais:1. ...
Esqueleto de um jogo XNA partial class Game1 : Microsoft.Xna.Framework.Game  {      public Game1() {         graphics = ne...
Inicialização do jogoTexture2D cheeseTexture;SpriteBatch spriteBatch;protected override void LoadGraphicsContent(bool load...
Usando o Content Pipeline O content pipeline gerencia os recursos Cada recurso recebe um nome O método Load do ContentMana...
XNA Game Drawingprotected override void Draw(GameTime gameTime){    graphics.GraphicsDevice.Clear(Color.Black);    // Dese...
Update do Jogoprotected override void Update(){      foreach (GameComponent gc in Components)      {         if (gc is Met...
Leitura do JoystickGamePadState padState = GamePad.GetState(PlayerIndex.One);if (padState.IsConnected){    if (padState.DP...
Leitura analógica do Joystick int padXSpeed = 10; int padYSpeed = 10;GamePadState padState = GamePad.GetState(PlayerIndex....
Terminando… Recursos   Livro     http://www.amazon.com/Beginning-XNA-2-0-Game-     Programming/dp/1590599241   XNA Develop...
http://www.xna.com    jalf@sharpgames.nethttp://www.sharpgames.net
Introdução ao XNA
Upcoming SlideShare
Loading in...5
×

Introdução ao XNA

888

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
888
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Introdução ao XNA"

  1. 1. Introdução ao XNA e aoXNA Game DeveloperJosé Antonio “jalf” Leal de FariasMicrosoft Most Valuable ProfessionalSharpgames Team jalf@sharpgames.net http://www.sharpgames.net
  2. 2. Agenda O que é XNA?? XNA Game Studio XNA Framework Xbox 360 Xbox Live Community Games Criando um Jogo Aprendendo XNA
  3. 3. O que é XNA?? XNAs Not Acronymed (não é uma sigla) Plataforma de desenvolvimento de jogos com foco no jogo e não na tecnologia XNA Game Studio XNA Framework
  4. 4. Um pouco de história…. XNA Game Studio Express 1.0 lançado em12/2006 Foco não profissional ?? XNA Game Studio 2.0 lançado12/2007 XNA Game Studio Professional?
  5. 5. XNA Game Studio XNA Game Studio Extende o Visual Studio para a criação de jogos com C# XNA Framework Framework Cross-platform game framework e runtime Xbox 360 CLR Versão Customizada do .NET Compact Framework
  6. 6. XNA Framework Games Your Code Your Content Components Starter Kits Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Networking Gamer Services Platform DirectX XDK .NET Framework .NET CF
  7. 7. Games Starter Kits Code Content CompsModelo de Aplicação Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContentMantenha-se focado no jogo e não em qual plataforma ele está rodando Configurado e rodando rapidamente As primeiras linhas de código já serão para seu jogo. Abstração de Plataforma Qual a melhor maneira de criar um game loop? Como eu crio e gerencio minha janela? Como eu sigo as melhores práticas para a plataforma? Game É o tipo principal de seu jogo Eventos de Load, Update e Draw
  8. 8. Games Starter Kits Code Content CompsModelo de Aplicação Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContentCrie componentes reusáveis que podem facilmente ser integrados ao seu jogo GameComponent, DrawableGameComponent Base para todos os componentes XNA O Autor escreve o Load, Update, e Draw Pode descobrir e interagir com outros componentes Game.Components Gerenciado em tempo de execução pelo jogo Grande suporte a „design time‟ pelo IDE
  9. 9. Games Starter Kits Code Content CompsXNA Framework Content Pipeline Extended Framework Application Model Content PipelinePrincípios de Design Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContent Liberdade de escolha Ferramenta de criação de conteúdo Game engines Menos código para a criação Mais tempo para a criação do jogo Forte integração entre código e conteúdo Build de código e de conteúdo unificados
  10. 10. XNA Framework Content Pipeline Importadores Conteúdo de jogo adicionado ao Visual Studio 3D File 3D File 2D File Material File Audio File 2D File Material File Audio File Formats Formats Formats Formats Formats Formats Formats Formats .FBX .FBX .DDS .BMP .DDS .BMP .FX .FX .XAP (XACT) .XAP (XACT) .X .JPG .PNG Processadores .X .JPG .PNG .TGA .TGA Conversões de tipo altamante tipadas Extensões de código gerenciado ContentManager xnaLoader = new ContentManager(); myAsset = xnaLoader.Load<Mesh>("MyAssetName");
  11. 11. Xbox 360 Lançado em Novembro de 2005 Xbox Live Novos conceitos para os jogadores Um grande passo para o mundo dos games…
  12. 12. Xbox Live Community Games
  13. 13. Xbox Live Community Games
  14. 14. XNA 3.0Todo o suporte já criadomelhoradoSuporte ao ZuneZune, Xbox e Windows juntos?Final de 2008!!!
  15. 15. XNA 2D game“Rock Rain” Construção de um jogo simples O jogador deve guiar a nave evitando os asteróides É um jogo 2D simples, baseado em sprites
  16. 16. Construção de um jogo em XNABasedo na forma como um jogo funciona Todo jogo tem algums comportamentos fundamentais:1. Inicializa todos os recursos no início Inicializa todas as texturas, modelos, som, etc2. Continuamente roda o Game Loop: 1. Atualiza a game engine Lê os controladores, atualiza o estado e a posição dos game elements 2. Desenha o ambiente do jogo renderiza os game elements na tela
  17. 17. Esqueleto de um jogo XNA partial class Game1 : Microsoft.Xna.Framework.Game { public Game1() { graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); } protected override void LoadGraphicsContent(bool loadAllContent) { } protected override void Update(GameTime gameTime) { } protected override void Draw(GameTime gameTime) { } }
  18. 18. Inicialização do jogoTexture2D cheeseTexture;SpriteBatch spriteBatch;protected override void LoadGraphicsContent(bool loadAllContent) { if (loadAllContent) { cheeseTexture = content.Load<Texture2D>("cheese"); spriteBatch = new SpriteBatch(graphics.GraphicsDevice); }} LoadGraphicsContent é chamada quando seu jogo inicializa Ele cria a textura do queijo e carrega uma imagem nele Também cria um SpriteBatch para gerenciar o processo de renderização
  19. 19. Usando o Content Pipeline O content pipeline gerencia os recursos Cada recurso recebe um nome O método Load do ContentManager fornece acesso ao recurso Note o uso de generics cheeseTexture = content.Load<Texture2D>(“rockrain");
  20. 20. XNA Game Drawingprotected override void Draw(GameTime gameTime){ graphics.GraphicsDevice.Clear(Color.Black); // Desenha o Background spriteBatch.Begin(); spriteBatch.Draw(backgroundTexture,new Rectangle(0, 0, graphics.GraphicsDevice.DisplayMode.Width, graphics.GraphicsDevice.DisplayMode.Height),Color.LightGray); spriteBatch.End(); // sprites spriteBatch.Begin(SpriteBlendMode.AlphaBlend); base.Draw(gameTime); spriteBatch.End();}
  21. 21. Update do Jogoprotected override void Update(){ foreach (GameComponent gc in Components) { if (gc is Meteor) { hasColision = ((Meteor)gc).CheckCollision(shipRectangle); if (hasColision) { audioComponent.PlayCue("explosion"); Start(); break; } } } UpdateComponents();}
  22. 22. Leitura do JoystickGamePadState padState = GamePad.GetState(PlayerIndex.One);if (padState.IsConnected){ if (padState.DPad.Left == ButtonState.Pressed) { breadX--; } if (padState.DPad.Right == ButtonState.Pressed) { breadX++; } /// repetir para o eixo Y do pão}
  23. 23. Leitura analógica do Joystick int padXSpeed = 10; int padYSpeed = 10;GamePadState padState = GamePad.GetState(PlayerIndex.One);if (padState.IsConnected){ breadX += (int) (padState.ThumbSticks.Left.X * padXSpeed); breadY -= (int) (padState.ThumbSticks.Left.Y * padYSpeed);}
  24. 24. Terminando… Recursos Livro http://www.amazon.com/Beginning-XNA-2-0-Game- Programming/dp/1590599241 XNA Developer Center http://msdn.com/xna Blog do time do XNA http://blogs.msdn.com/xna Sharpgames! http://www.sharpgames.net Creator‟s Club http://creators.xna.com/
  25. 25. http://www.xna.com jalf@sharpgames.nethttp://www.sharpgames.net

×