curso (2010) - desenvolvimento de jogos 2d com xna

85
Desenvolvimento de Jogos 2D com XNA Kleber de Oliveira Andrade [email protected] Universidade de São Paulo USP Escola de Engenharia de São Carlos EESC Departamento de Dinâmica de Sistemas e Controles Maio/2010

Upload: kleber-de-oliveira-andrade

Post on 25-May-2015

1.299 views

Category:

Entertainment & Humor


3 download

TRANSCRIPT

Page 1: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

Desenvolvimento de Jogos 2D com XNA

Kleber de Oliveira Andrade

[email protected]

Universidade de São Paulo – USP

Escola de Engenharia de São Carlos – EESCDepartamento de Dinâmica de Sistemas e Controles

Maio/2010

Page 2: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Bacharel em Ciência da Computação– Escola de Engenharia de Piracicaba (EEP)

– Título: Um algoritmo evolutivo para adaptação dos NPCs em um jogo de ação.

• Mestrando em Engenharia Mecânica– Escola de Engenharia de São Carlos (USP/EESC)

– Título: Planejadores neurais para manobra de baliza de um automóvel de passeio utilizando sensor laser, ultrassônicos e visão artificial.

• Jogador a mais de 20 anos desde a época do Atari.

2010 © Kleber de Oliveira Andrade 2

Page 3: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Uma breve Introdução

• A Indústria de Jogos Digitais

• Visão sobre o XNA

• Conhecimentos básicos de XNA

• Revisão de Programação C#

• Criando um Jogo 2D completo

32010 © Kleber de Oliveira Andrade

Page 4: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 4

Page 5: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 5

1958: “Tennis for Two” jogo quefuncionava em um osciloscópio(Willy Higinbotham)

1961: “Space Wars” jogodesenvolvido no computadorPDP-1 por Steve Russel, o jogotinha 2Kb

Page 6: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 6

1979: Asteroids

Donkey Kong (1984)

Wolf 3D (1992)

Década de 70 é considerada uma OdisséiaComercial, muitos jogos foram desenvolvidos.

Depois do Crash da Indústriaem 1983/84, surgiu umarevolução nos jogos

A década de 90,muitos consolesforam lançados e em1992 uma novaevolução com osjogos FPS.

Page 7: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 7

God of War III

X Games SnoCross

Qualidade gráfica evidência aevolução no desenvolvimento dejogos, assim como sua InteligênciaArtificial.

Jogos que envolvem centenas deprofissionais das mais diversasáreas, e altos orçamentos.

Page 8: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• A discussão não se restringe apenas à gráficos ou inteligência artificial.

• O que esperar então ?

– Facilidade de criação ?

– Comunidades ?

– Interface com o jogador ?

– Inovação?

– Prazer de jogar por horas e horas ?

2010 © Kleber de Oliveira Andrade 8

Page 9: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 9

The Harvest 3 Racing Game City Rain

Page 10: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 10

Page 11: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• É uma das mais rentáveis do mundo

– Faturamentos de 2007 supera a indústria de música e cinema juntos.

• Parece coisa de criança, mas não é.

– 75% dos chefes de família jogam

– Média de idade de jogadores: 30 anos

– Média de idade de compradores: 37 anos

2010 © Kleber de Oliveira Andrade 11

Dados da ESA (“2008 video-game indutry facts”), http://www.theesa.com

Page 12: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Serious Game (Treinamento e Capacitação)

2010 © Kleber de Oliveira Andrade 12

Blossom

BattlezoneEconorte (Oniria)

Page 13: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Advergames (Propagandas)

2010 © Kleber de Oliveira Andrade 13

1993 - Cool Spot (7-Up)

1990 - Yo! Noid (Domino’s Pizza)

1983 - Pepsi Invaders

Rooftop Racer

Page 14: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Educacionais (Jogos cujo objetivo é ensinar)

2010 © Kleber de Oliveira Andrade 14

Project Beauty Alice

Big Brain Academy: Wii Degree

Page 15: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• “God” games (Softwares Toys)

2010 © Kleber de Oliveira Andrade 15

Black & White

The Sims

Page 16: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Criar jogos demanda muito conhecimento técnico.

• Acesso aos Kits de desenvolvimento– Restrito– Caro– Complexo

• Desenvolver para qual plataforma?

• Faltavam comunidades!

• Quais as chances de sucesso para quem esta começando?

2010 © Kleber de Oliveira Andrade 16

Page 17: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 17

Page 18: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

Xna Não é um Acrônimo

2010 © Kleber de Oliveira Andrade 18

Page 19: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 19

Page 20: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Para desenvolver / jogar no PC

– Nenhum!

– Tudo através de ferramentas gratuitas (Visual C# Express Edition, XNA Game Studio e recursos da comunidade).

• Para desenvolver / jogar no Xbox 360.

– Licença XNA Creators Club• US$ 99,00 por ano ou

• US$ 49,00 por 4 meses

2010 © Kleber de Oliveira Andrade 20

Page 21: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Principal API utilizada pra desenvolvimento de jogo

• Aplicativos desenvolvidos em C++

• Desenvolvimento para Windows

• API construída sobre o DirectX

• Jogos desenvolvidos com linguagens .NET

• Desenvolvimento para plataforma Windows

• API construída utilizando como base o MDX (substituiu o MDX)

• Aplicativos desenvolvidos em C#

• Desenvolvimento para Windows, Xbox 360 e Zune

2010 © Kleber de Oliveira Andrade 21

Page 22: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 22

Jogos

Extended

Framework

Core

Framework

Plataforma

Starter Kits Code Content Components

Application Model Content Pipeline

Graphics Audio Input Math Storage

Direct3D XACT XINPUT XCONTENT

XNA Provê Você cria ComunidadeLegenda:

Network

Page 23: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 23

Jogos

Extended

Framework

Core

Framework

Plataforma

Starter Kits Code Content Components

Application Model Content Pipeline

Direct3D XACT XINPUT XCONTENT

Graphics Audio Input Math Storage Network

Page 24: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

Modifique os jogos e crie o seu próprio

2010 © Kleber de Oliveira Andrade 24

Page 25: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 25

Jogos

Extended

Framework

Core

Framework

Plataforma

Starter Kits Code Content Components

Application Model Content Pipeline

Direct3D XACT XINPUT XCONTENT

Graphics Audio Input Math Storage Network

Page 26: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

Mantenha-se focado no jogo e não em qual plataforma está rodando

• Faz o serviço chato e trabalhoso para você

• Desenvolvimento acelerado

• Possui recursos avançados

• Extensível

• Game

2010 © Kleber de Oliveira Andrade 26

Page 27: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Liberdade de escolha

– Ferramentas 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

2010 © Kleber de Oliveira Andrade 27

Page 28: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 28

Page 29: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 29

Jogos

Extended

Framework

Core

Framework

Plataforma

Starter Kits Code Content Components

Application Model Content Pipeline

Direct3D XACT XINPUT XCONTENT

Graphics Audio Input Math Storage Network

Page 30: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Fornece recursos de renderização de baixo nível

• Construído em cima do Direct3D 9

• APIs atualizadas que seguem as regras do .NET– Efeitos– Recursos– Lock / Unlock– Vertex streams

• Recursos fornecidos– Model, Mesh e Bones– Textures– Effects e Shaders

2010 © Kleber de Oliveira Andrade 30

Page 31: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Baseado no XACT (Cross-Platform Audio CreationTool)– Adiciona sons

– Ajusta propriedades

– Construir bancos de sons

• Fácil integração para desenvolvedores– Acesse-os via seus nomes lógicos

– Looping, streaming, e gerenciamento de memória

– Sem gerenciamento de buffer de baixo nível

2010 © Kleber de Oliveira Andrade 31

Page 32: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Torna fácil a obtenção de dados de entrada

• Dispositivos– Keyboard

– Mouse (apenas para Windows)

– Xbox 360 (Gamepad, guitarra, tambores, volantes, etc...)

• Modelo de programação imediato– Não demanda inicialização

– Não demanda gerenciamento de estados

– Basicamente tira uma fotografia dos estados de todos os botões

2010 © Kleber de Oliveira Andrade 32

Page 33: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Fornece um jeito fácil para ler e salvar informações do jogo

• Atua como um sistema de arquivos virtuais– Arquivos armazenados no local correto de cada plataforma

– Suporta múltiplos dispositivos de armazenamento e perfis no Xbox 360

• Baseado em Streams, o que facilita a integração com o System.IO

2010 © Kleber de Oliveira Andrade 33

Page 34: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Biblioteca de funções matemáticas para jogos– Vector, Matriz, Quaternion, Plane, AABB, Sphere, Ray,

Frustum, Curve

– Regra-da-mão-direita por default

– Fácil integração

– Testes de interesecções

– Facilitadores para movimentos

2010 © Kleber de Oliveira Andrade 34

Page 35: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Conexão entre Xbox 360 e PC

• Conexão local e via LIVE!

• Inclui suporte a LIVE! MatchMaking– Conecta você a pessoas com perfil semelhantes

• Na versão 3.1– Ranked matchmaking– Venda de jogos na Live Community!– Conexão de até 8 Zunes em rede ad-hoc

2010 © Kleber de Oliveira Andrade 35

Page 36: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 36

Jogos

Extended

Framework

Core

Framework

Plataforma

Starter Kits Code Content Components

Application Model Content Pipeline

Graphics Audio Input Math Storage

Direct3D XACT XINPUT XCONTENT

Page 37: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade37

Skinning & Animation

3D Particles

Distortion

Shatter Effects

Page 38: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• AbduX

– Jogo completo, feito em 4 dias, por 1 pessoa

– Explora recursos gráficos, sons, input e fontes no XNA além de reconhecimento de voz

2010 © Kleber de Oliveira Andrade 38

Page 39: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Dungeon Quest

– Desenvolvido em apenas 4 dias

– Equipe: 1 desenvolvedor e 1 designer

2010 © Kleber de Oliveira Andrade 39

Page 40: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 40

Page 41: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 41

Page 42: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Para desenvolver:– Windows XP SP2 ou superior

– Visual C# 2008 Expresse Edition ou versão Professional

– Runtime do DirectX

• Para rodar:– Placa de vídeo compatível com DirectX 9.0 e Shaders 2.0

– Runtime do XNA e do DirectX

– PC: Windows XP SP2 ou superior

– Xbox 360: deve haver HD

– Zune: pronto para rodar!

2010 © Kleber de Oliveira Andrade 42

Page 43: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• É uma ferramenta de desenvolvimento (IDE) criada pelaMicrosoft.

• Sua interface é simples e intuitiva.

• Muito recomendada para usuários iniciantes emprogramação na linguagem C#.

• A versão Express não tem custo e você pode registrá-la.

– Visual C# 2008 Express Edition

2010 © Kleber de Oliveira Andrade 43

Page 45: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• File New Project

2010 © Kleber de Oliveira Andrade 45

Solution Explorer

Page 46: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Após criar seu novo projeto, você já pode testá-lo.

• Para isso, aperte F5.

• Se tudo der certo, espera-se o seguinte resultado.

2010 © Kleber de Oliveira Andrade 46

Page 47: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 47

Initialize() LoadContent() Update()

Draw()UnloadContent()

Game Loop

Término da aplicação

Page 48: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 48

Page 49: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Pasta Content, botão direito do mouse... Add -> Existing Item

• Criar uma variável do tipo Texture2D Texture2D image;

• Carregar a imagem (método LoadContent)image = Content.Load<Texture2D>(“fantasma”);

• Desenhar a imagem na tela (método Draw)spriteBatch.Begin();spriteBatch.Draw(imagem, new Vector(100.0f, 100.0f), Color.White);spriteBatch.End();

2010 © Kleber de Oliveira Andrade 49

Page 50: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Espera-se obter o seguinte resultado ao compilar o exemplo.

2010 © Kleber de Oliveira Andrade 50

Page 51: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Adicione duas novas variáveis.Vector2 position = new Vector2(100.0f, 100.0f);KeyboardState keyState;

• No método Draw, troque new Vector2(100.0f, 100.0f) pela variável position que criamos.

• No método Update, adicione as seguintes linhas

keyState = Keyboard.GetState();

if (keysboardState.IsKeyDown(Keys.Up)) position.Y -= 5.0f; if (keysboardState.IsKeyDown(Keys.Down)) position.Y += 5.0f; if (keysboardState.IsKeyDown(Keys.Left)) position.X -= 5.0f;if (keysboardState.IsKeyDown(Keys.Right)) position.X += 5.0f;

2010 © Kleber de Oliveira Andrade 51

Page 52: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Comente as linhas do método Update que manipulam a imagem com o teclado.

• Adicione uma variável de estado para o mouseMouseState mState;

• No método Update digite.mState = Mouse.GetState();position.X = mState.X - image.Width / 2;position.Y = mState.Y - image.Height / 2;

• Para fazer a seta aparecer coloque no Initialize.IsMouseVisible = true;

2010 © Kleber de Oliveira Andrade 52

Page 53: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Add -> New Item

2010 © Kleber de Oliveira Andrade 53

Page 54: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• É gerado um arquivo xml. Mude a seguinte informação dele<FontName>Arial</FontName>

• Crie uma variável do tipo SpriteFontSpriteFont sFont;

• Carregue a font que você criou no método LoadContentsFont = Content.Load<SpriteFont>(“fontArial”);

• Escreva as informações na tela dentro do método Draw, entre os comandos Begin() e End()

spriteBatch.DrawString(sFont, "X = " + position.X.ToString(), newVector2(10.0f, 10.0f), Color.White);

spriteBatch.DrawString(sFont, "Y = " + position.Y.ToString(), newVector2(10.0f, 30.0f), Color.White);

2010 © Kleber de Oliveira Andrade 54

Page 55: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Espera-se obter o seguinte resultado ao compilar o exemplo.

2010 © Kleber de Oliveira Andrade 55

Page 56: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Adicione as seguintes linhas após fazer osmovimentos do personagem.

2010 © Kleber de Oliveira Andrade 56

Page 57: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Adicione a música na pasta Content do seu projeto

Add -> Existent Item

• Declare uma variável do tipo Song

Song music;

• Carregar a música no LoadContent

music = Content.Load<Song>(“music”);

2010 © Kleber de Oliveira Andrade 57

Page 58: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Para tocar a música digite o seguinte código também no LoadContent

MediaPlayer.Play(music);

• Para fazer a música ficar em loop infinito digite:

MediaPlayer.IsRepeating = true;

2010 © Kleber de Oliveira Andrade 58

Page 59: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Adicione o efeito sonoro na pasta Content do seu projeto

Add -> Existent Item

• Declare uma variável do tipo SoundEffect

SoundEffect collision;

• Carregar a música no LoadContent

collision = Content.Load<SoundEffect>(“collision”);

2010 © Kleber de Oliveira Andrade 59

Page 60: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Declare uma váriavel de colisão como booleanabool collsion;

• No método Update, deixe collision sempre comofalso e quando acontecer uma colisão do fantasmacom a parede troque o valor para verdadeiro.

• Então verifica se collision é verdadeiro e toque osom.

if (collision) sound.Play();

2010 © Kleber de Oliveira Andrade 60

Page 61: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 61

Centro C2 Centro C1

Raio r2 Raio r1

Existe colisão se:dist(c1,c2) < r1 + r2

Colisão em X Colisão em Y

Colisão completa

Page 62: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• GameComponent– Automatiza alguma métodos sobrecarregando-os, menos a

parte de desenho

– Exemplo prático

• DrawableGameComponent– Automatiza alguma métodos sobrecarregando-os, inclusive

a parte de desenho

– Exemplo prático

• GameServices– Disponibiliza serviços de objetos para outras classes

– Exemplo prático

2010 © Kleber de Oliveira Andrade 62

Page 63: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 63

Page 64: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• A Linguagem C#:

– É uma linguagem orientada a objeto, moderna, desenhadaa fim de aumentar a produtividade do programador. C# éutilizado por milhares de programadores e analistas eprovê acesso total a tecnologia utilizando o .NetFramework, O Compact Framework e mais recentemente oXNA Framework

2010 © Kleber de Oliveira Andrade 64

Page 65: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• namespace – é usada para declarar um escopo. Este escopo permite você organizar o código e oferece uma maneira parar criar tipos exclusivos.

652010 © Kleber de Oliveira Andrade

Page 66: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• #region e #endregion – directiva para incluir umaregião dentro do código, facilitando a vida doprogramador, podendo este visualizar apenas ocódigo de interesse no momento.

662010 © Kleber de Oliveira Andrade

Page 67: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Comentários – /* ... */ e //

672010 © Kleber de Oliveira Andrade

Page 68: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Using – mesmo conceito do #include da linguagem C/C++ ou import da linguagem Java

682010 © Kleber de Oliveira Andrade

com using

sem using

Page 69: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Variáveis:

692010 © Kleber de Oliveira Andrade

Tipos C# Valores possíveis de se armazenar

bool true ou false (valores booleanos)

byte 0 a 255 (8 bits)

sbyte -128 a 127 (8 bits)

char Um caractere qualquer (16 bits)

decimal ±1.0 x 10-28 a ±7.9 x 1028 (128 bits)

double ±5.0 x 10-324 a ±1.7 x 10308 (64 bits)

float ±1.5 x 10-45 a ±3.4 x 1038 (32 bits)

int -2,147,483,648 a 2,147,483,647 (32 bits)

uint 0 a 4,294,967,295 (32 bits)

long -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 (64 bits)

ulong 0 a 18,446,744,073,709,551,615 (64 bits)

object Qualquer tipo

short -32,768 a 32,767 (16 bits)

ushort 0 a 65,535 (16 bits)

string Seqüência de caracteres (16 bits por caractere)

Page 70: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Operadores

2010 © Kleber de Oliveira Andrade 70

Category Operator(s) Associativity

Primary (x) x.y f(x) a[x] x++ x- - new typeof sizeof checked unchecked Left

Unary + - ! ~ ++x - -x (T)x Left

Multiplicative * / % Left

Additive + - Left

Shift << >> Left

Relational < > <= >= is Left

Equality == != Right

Logical AND & Left

Logical XOR ^ Left

Logical OR | Left

Conditional AND && Left

Conditional OR || Left

Ternary ? : Right

Assignment = *= /= %= += -= <<= >>= &= ^= |= Right

Page 71: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Vetores Multidimensionais (arrays):

712010 © Kleber de Oliveira Andrade

Page 72: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Entrada e Saída padrão:

722010 © Kleber de Oliveira Andrade

Page 73: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Estrutura condicional IF/ELSE:

732010 © Kleber de Oliveira Andrade

Page 74: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Laço de repetição FOR:

742010 © Kleber de Oliveira Andrade

Page 75: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Laço de repetição WHILE:

752010 © Kleber de Oliveira Andrade

Page 76: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Laço de repetição FOREACH:– O laço foreach é usado quando queremos percorrer todos os

elementos de um array (matriz) ou de coleções de dados, tais comouma ArrayList.

762010 © Kleber de Oliveira Andrade

Page 77: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Listas:

772010 © Kleber de Oliveira Andrade

Page 78: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Tratamento de erros:

782010 © Kleber de Oliveira Andrade

Page 79: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Classes

• Construtor

• Atributos e métodos

792010 © Kleber de Oliveira Andrade

Page 80: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Herança, Polimorfismo, Encapsulamento e Enumeradores.

802010 © Kleber de Oliveira Andrade

Page 81: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 81

Page 82: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

2010 © Kleber de Oliveira Andrade 82

Page 83: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• “XNA Tap”

– Construção de um jogo simples

– Construção de um gerenciador de telas

– O jogador deve acertar as baratas com o jornal

2010 © Kleber de Oliveira Andrade 83

Page 84: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

• Sharp, John. Microsoft Visual C#: Passo a passo (Tradução: Altair Dias Caldas deMoraes). Porto Alegre : Bookman, 2007. 504 p. ISBN 978-85-60031-17-7.

• Kleber Andrade. Curso de XNA. http://kleberandrade.wordpress.com/xna –[acessado em abril de 2010].

• Sharp Games. http://www.sharpgames.net - [acessado em abril de 2010]

• XNA Developer Center, http://msdn.microsoft.com/xna/ - [acessado em março de2010]

• XNA Creators Club, http://creators.xna.com – [acessado em abril 2010]

2010 © Kleber de Oliveira Andrade 84

Page 85: Curso (2010) - Desenvolvimento de Jogos 2D  com XNA

Obrigado !Kleber de Oliveira Andrade

[email protected]://kleberandrade.wordpress.com