XNA Game Studio Tutorial Criando um jogo com XNA em 1 hora

Slides:



Advertisements
Apresentações semelhantes
Introdução à plataforma
Advertisements

Programação em Java Prof. Maurício Braga
1 ANÁLISE E PROJETO NO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO: CONCEITO MODELOS DE PROCESSO PROCESSO UNIFICADO HISTÓRIA CARACTERÍSTICAS AS QUATRO.
Lógica de programação de jogos
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Windows Forms 2º Semestre 2010 > PUCPR > TPU Bruno C. de Paula.
Interação entre objetos
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 9.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 11.
Excel Profa. Cristina M. Nunes.
Campus Curitiba Departamento Acadêmico de Matemática Angela Olandoski Barboza UTFPR – Damat.
Estatística Básica Utilizando o Excel
April 05 Prof. Ismael H. F. Santos - 1 Modulo II CheckStyle Professor Ismael H F Santos –
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade Federal de Minas Gerais
Auditoria de Segurança da Informação
Fraction Action FRACÇÕES.
Programação Baseada em Objectos Desenho de TAD
Aula de reposição Prof. Grace e Ângela
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Provas de Concursos Anteriores
Como aplicar leis da lógica
INPUT Alexandre Tolstenko Nogueira
1 Celulose.
MECÂNICA - DINÂMICA Cinemática de uma Partícula Cap. 12.
Cinemática de uma Partícula Cap. 12
XNA Framework Raphael Barros.
Introdução à Programação
Desenvolvimento de Jogos com XNA
Dinâmica do Movimento Plano de um Corpo Rígido: Força e Aceleração
Resultantes de Sistemas de Forças Cap. 4
Cinemática Plana de um Corpo Rígido Cap. 16
MECÂNICA - DINÂMICA Cinemática de uma Partícula Cap Exercícios.
Object Oriented Software Construction (MEYER, Bertrand)
Aula 4 – Tratamento de Input
Conteúdos do tutorial O que é um Slide Mestre?
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
GAPH Integração de Hardware do Usuário ao CoreConnect Leandro Heleno Möller e Leonel Pablo Tedesco Prototipação Rápida e Computação.
Salas de Matemática.
MINISTÉRIO DO PLANEJAMENTO Projeto de Lei Orçamentária 2011 Ministro Paulo Bernardo Silva Brasília, novembro de 2010.
MINISTÉRIO DO PLANEJAMENTO Projeto de Lei Orçamentária 2010 Ministro Paulo Bernardo Silva Brasília, 31 de agosto de 2009.
20/9/2014FACENS1 Desenvolvimento de Jogos na Plataforma XNA: Introdução Fábio Lopes Caversan.
É u m e l e m e n t o f u n d a m e n t a l
EXERCÍCIOS PARA GUARDA-REDES
Cinemática de uma Partícula Cap. 12
Introdução ao XNA e ao Game Developer Express
Ritornello Um Framework para Representação de Conhecimento Musical
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Grupo A – Azul Claro, Marrom, Laranja
Agenda - Aula 2 Introdução (Computador Digital) Processadores
SairPróximo Itens de Seleção Probabilidades e Combinatória Cálculo de Probabilidades. Regra de Laplace. ITENS DE SELEÇÃO DOS EXAMES NACIONAIS E TESTES.
BPM BUSINESS PROCESS MANAGEMENT Projecto em Informática e Gestão de Empresas Lisboa, 20 de Junho de 2006.
MATRICIAL CONSULTORIA LTDA. PREFEITURA MUNICIPAL DE GARIBALDI 23/10/ : ATENÇÃO Os locais descritos nas planilhas anexas não correspondem ao total.
Linguagem e Ambiente Scratch
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
Estrutura de Dados André Augusto Nogueira Alves
Rio Verde - Goiás - Brasil
Alexandre Tolstenko Nogueira
Cinemática Plana de um Corpo Rígido Cap. 16
Wagner Santos C. de Jesus
Dinâmica do Movimento Plano de um Corpo Rígido: Força e Aceleração
GINÁSTICA LABORAL UM NOVO CAMINHO.
Curso Básico de Programação de Jogos com XNA Alexandre Tolstenko Nogueira
DESENVOLVIMENTO DE JOGOS 2D UTILIZANDO O FRAMEWORK

Aula 3 – Arquitetura XNA e desenho 2D
Transcrição da apresentação:

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

Quem sou eu? www.alexandrelobao.com

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/7/2017 3:43 PM 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

Universidade Canal de talentos Technology Crescimento 4/7/2017 3:43 PM Universidade Canal de talentos Technology Crescimento

XNA Game Studio 2006 2007 2008 Desenvolvimento para Xbox 360 4/7/2017 3:43 PM XNA Game Studio 2006 Desenvolvimento para Xbox 360 Arquitetura simples para criação de jogos 2007 Multiplayer, Visual Studio Adotado em 700 universidades americanas 4 contratos XBLA na competição Dream Build Play 2008 Jogos da comunidade no Xbox LIVE Desenvolvimento de jogos para Zune Suporte ao Xbox LIVE Arcade

Componentes do XNA Game Studio 4/7/2017 3:43 PM Componentes do XNA Game Studio Framework Graphics Audio Input Math Storage Network

Pipeline de Conteúdo (content pipeline) 4/7/2017 3:43 PM XNA Framework Camadas Jogos Starter Kits Código Conteúdo Componentes Framework Framework (extensões) Modelo de Aplicação Pipeline de Conteúdo (content pipeline) Framework (núcleo) Graphics Audio Input Math Storage Network Plataforma Direct3D XACT XINPUT XCONTENT Legenda XNA já provê Você cria Comunidade

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

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

XNA Framework - Graphics 4/7/2017 3:43 PM 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

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

Desenho de objetos 2D Na classe game1: No Método LoadGraphics: private Texture2D textura; No Método LoadGraphics: textura = content.Load<Texture2D>("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();

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

“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; }

Tutorial – passo 2 Criando um game component Movimentando a bola

XNA Framework - Input Xbox 360 controller 11 botões 4/7/2017 3:43 PM 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);

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;

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;

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

Detecção de colisão Todo jogo precisa disso! 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; }

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

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

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

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(); } Utilizar o som via Content Pipeline

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(); Utilizar o som via Content Pipeline

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

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

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

Conclusões

Há diversas comunidades… 4/7/2017 3:43 PM Há diversas comunidades… Dezenas (centenas?) de comunidades ativas! Dezenas (centenas?) jogos – muitos com fonte aberto!

E diversos “Starter Kits”… 4/7/2017 3:43 PM E diversos “Starter Kits”…

Por onde começar? Baixe o XNA Game Studio hoje mesmo! Baixe essa apresentação e outros recursos XNA no SharpGames! www.sharpgames.net Comunidade brasileira para desenvolvimento de jogos! Artigos, links, downloads, XNA, DirectX, Projeto Hoshimi e muito mais! XNA Developer Center http://msdn.microsoft.com/xna/ XNA Creators Club http://creators.xna.com/

Livros

Alexandre Lobão www.AlexandreLobao.com 4/7/2017 3:43 PM Alexandre Lobão Professor da pós-graduação em Jogos Eletrônicos do IESB Colunista da Revista Oficial do Xbox 360 Escritor e roteirista www.AlexandreLobao.com