A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

XNA Game Studio Tutorial Criando um jogo com XNA em 1 hora Alexandre Santos Lobão

Apresentações semelhantes


Apresentação em tema: "XNA Game Studio Tutorial Criando um jogo com XNA em 1 hora Alexandre Santos Lobão"— Transcrição da apresentação:

1 XNA Game Studio Tutorial Criando um jogo com XNA em 1 hora Alexandre Santos Lobão

2 2 Quem sou eu? 2

3 3 Agenda Visão Geral do XNA Tutorial – um jogo em 1 hora Gráficos Game Components Input Detecção de Colisão Sons Uso de fontes

4 4 Proposta Iniciativa da Microsoft para facilitar e popularizar o desenvolvimento de jogos digitais, permitindo a sua criação através de linguagem C# e ricas APIs de desenvolvimento

5 5

6 6 XNA Game Studio Desenvolvimento para Xbox 360 Arquitetura simples para criação de jogos Multiplayer, Visual Studio Adotado em 700 universidades americanas 4 contratos XBLA na competição Dream Build Play Jogos da comunidade no Xbox LIVE Desenvolvimento de jogos para Zune Suporte ao Xbox LIVE Arcade

7 7 Framework Framework Componentes do XNA Game Studio GraphicsAudioInputMath Storage Network

8 8 Framework Framework Framework(extensões) Modelo de Aplicação Pipeline de Conteúdo (content pipeline) Framework(núcleo) GraphicsGraphicsAudioAudioInputInputMathMathStorageStorage NetworkNetwork Plataforma Direct3DDirect3DXACTXACTXINPUTXINPUTXCONTENTXCONTENT Jogos Starter Kits CódigoCódigoConteúdoConteúdoComponentesComponentes L egenda XNA já provê Você cria ComunidadeComunidade

9 9 Arquitetura de um programa XNA Ao se criar um projeto, são gerados dois arquivos: Program.cs Game1.cs

10 10 Arquitetura de um programa XNA Métodos chamados pela classe Game Initialize() Inicializações gerais do jogo LoadContent() Chamado sempre que é necessário carregar os recursos (conteúdos) UnloadContent() Chamado sempre que é necessário liberar os recursos (conteúdos) A cada game loop: Update Onde se coloca a lógica principal do jogo (cálculos) Draw Onde se colocam as rotinas de desenho do jogo

11 11 XNA Framework - Graphics Fornece recursos de renderização de baixo nível Construído em cima do Direct3D 9 Recursos oferecidos Model, Mesh, Bones Texturas Efeitos e Shaders BasicEffect facilita apresentar objetos 3D SpriteBatch para 2D e partículas

12 12 Tutorial – passo 1 Carregando texturas Bola, tijolos e bastão

13 13 Desenho de objetos 2D Na classe game1: private Texture2D textura; No Método LoadGraphics: textura = content.Load ("xna_thumbnail"); No Método UnloadGraphics: textura.Dispose(); No Método Draw: SpriteBatch.Begin(SpriteBlendMode.AlphaBlend); SpriteBatch.Draw(textura, Vector2.One, Color.White); SpriteBatch.End();

14 14 “Components” de um game Coleção Components da Classe Game Informa ao XNA quais os componentes do jogo Passos para criar um componente: 1. 1.Criar uma classe derivada de GameComponent 2. 2.Criar um objeto desta classe 3. 3.Adicionar o objeto ao Game usando: this.Components.Add( objeto ); O XNA automaticamente chama os métodos Update e Draw do objeto, se existirem

15 15 “Components” de um game Uma classe derivada de GameComponent class clsSprite : GameComponent { public Texture2D textura; // sprite texture public Vector2 posicao; // sprite posicao on screen public Vector2 velocidade; // velocidade in pixels public clsSprite(Game game, Texture2D Textura, Vector2 Posicao) : base(game) { textura = Textura; posicao = Posicao; }

16 16 Tutorial – passo 2 Criando um game component Movimentando a bola

17 17 XNA Framework - Input Xbox 360 controller 11 botões 2 triggers (alavancas) 2 direcionais analógicos 1 direcional digital Dois motores de vibração GamePadState state = GamePad.GetState(PlayerIndex.One); GamePad.SetVibration(PlayerIndex.One, 1.0f, 1.0f);

18 18 Tratamento de input do usuário Podemos ler o estado do GamePad... public override void Update(GameTime gameTime) {... // Muda a posição usando o thumbstick da esquerda GamePadState gamePad = GamePad.GetState(PlayerIndex.One); Posicao.X += gamePad.ThumbSticks.Left.X; Posicao.Y -= gamePad.ThumbSticks.Left.Y;

19 19 Tratamento de input do usuário 2. Alterar o método Update para tratar o input do usuário - Teclado public override void Update(GameTime gameTime) {... // muda a posição usando o teclado KeyboardState keyboardState = Keyboard.GetState(); if (keyboardState.IsKeyDown(Keys.Up)) Posicao.Y -= 10; if (keyboardState.IsKeyDown(Keys.Down)) Posicao.Y += 10; if (keyboardState.IsKeyDown(Keys.Left)) Posicao.X -= 10; if (keyboardState.IsKeyDown(Keys.Right)) Posicao.X += 10;

20 20 Tutorial – passo 3 Recebendo input do usuário Controle do bastão com o gamepad

21 21 Detecção de colisão public bool Colidiu(clsSprite sprite) { // Verifica se colidiu com a sprite if (this.posicao.X + this.textura.Width > sprite.posicao.X && this.posicao.X < sprite.posicao.X + sprite.textura.Width && this.posicao.Y + this.textura.Height > sprite.posicao.Y && this.posicao.Y < sprite.posicao.Y + sprite.textura.Height) return true; else return false; } Todo jogo precisa disso!

22 22 Tutorial – passo 4 Detecção de colisão Fazendo a bola quicar no bastão e tijolos

23 23 Uso de Audio com XACT Para que o som seja utilizável tanto no Windows quanto no Xbox 360, é necessário converter os sons em “Sound banks”, Cada “Sound bank” é composto por “Wave banks” Cada “Wave Bank” arnazena diversos arquivos (formato WAV ou AIF apenas) Formatos mais “profissionais”, sem perda de informação como o MP3

24 24 Uso de Audio com XACT Para incluir um som no jogo: 1. 1.Gerar o arquivo de som XACT 2. 2.Incluir o arquivo no jogo 3. 3.Utilizar o som via Content Pipeline

25 25 Uso de Audio com XACT Utilizando sons via Content Pipeline Criação dos objetos // Audio objects AudioEngine audioEngine; WaveBank waveBank; SoundBank soundBank; protected override void Initialize() { audioEngine = new AudioEngine("MySounds.xgs"); waveBank = new WaveBank(audioEngine, "Wave Bank.xwb"); soundBank = new SoundBank(audioEngine, "Sound Bank.xsb"); base.Initialize(); }

26 26 Uso de Audio com XACT Utilizando sons via Content Pipeline Gerar um efeito sonoro (som sem loop) soundBank.PlayCue("chord"); Tocar música de fundo (som com loop) // Iniciar a música myLoopingSound = soundBank.GetCue("notify"); myLoopingSound.Play(); // Parar ou continuar a música if (myLoopingSound.IsPaused) myLoopingSound.Resume(); else myLoopingSound.Pause();

27 27 Tutorial – passo 5 Colocando som no jogo Música de fundo e efeitos sonoros

28 28 Uso de Fontes no XNA 1. 1.Incluir novo item do tipo “SpriteFont” 2. 2.Configurar parâmetros da fonte Arial 14 2 Regular ~ 3. 3.Utilizar a fonte Na classe Game1.cs SpriteFont fonteArial; No método Initialize() fonteArial = content.Load ("FonteArial"); No método Draw() mySpriteBatch.Begin(); mySpriteBatch.DrawString(fonteArial, “Hello World!", Vector2.One, Color.Yellow); mySpriteBatch.End();

29 29 Tutorial – passo 6 Escrevendo com XNA Número de vidas, game over

30 Conclusões

31 31 Há diversas comunidades…

32 32 E diversos “Starter Kits”…

33 33 Por onde começar? Baixe o XNA Game Studio hoje mesmo! Baixe essa apresentação e outros recursos XNA no SharpGames! Comunidade brasileira para desenvolvimento de jogos! Artigos, links, downloads, XNA, DirectX, Projeto Hoshimi e muito mais! XNA Developer Center XNA Creators Club

34 34 Livros

35 35


Carregar ppt "XNA Game Studio Tutorial Criando um jogo com XNA em 1 hora Alexandre Santos Lobão"

Apresentações semelhantes


Anúncios Google